Si alguien tiene este tipo de problema, la respuesta está abajo, lo hizo :)
Tengo dos aplicaciones (cuentas y empresa).
cuentas/modelos.py
class Organization(models.Model): organization_name = models.CharField(max_length=20) #custom user model class NewUser(AbstractBaseUser): which_organization = models.ForeignKey(Organization, on_delete = models.CASCADE, null=True, blank=True) #other fieldsempresa/modelos.py
from accounts import models as accounts_model class Branch(models.Model): branch_name = models.ForeignKey( accounts_model.Organization, on_delete = models.CASCADE, null=True, blank=True) #other fieldsempresa/formularios.py
from .models import Branch class BranchForm(forms.ModelForm): class Meta: model = Branch fields = '__all__'empresa/views.py
from .forms import BranchForm def some_function(request): form = BranchForm() if request.method == 'POST': form = BranchForm(request.POST, request.FILES) if form.is_valid(): form.save(commit=False) form.branch_name = request.user.which_organization print("User organization: ", request.user.which_organization) form.save() return render(request, 'company/index.html', {'form': form}) PD Todo funciona bien. Puedo imprimir la organización del usuario con print("User organization : ", request.user.which_organization) pero no puedo guardarla con form.branch_name = request.user.which_organization en views.py. En lugar de obtener el nombre exacto de la organización del usuario, el objeto creado enumera todos los nombres de la organización...
¿Cómo lograrlo?)
lo hizo :D
def some_function(request): form = BranchForm() if request.method == 'POST': form = BranchForm(request.POST, request.FILES) if form.is_valid(): another_form = form.save(commit=False) another_form.branch_name = Organisation.objects.get(id= request.user.which_organization.id ) new_form.save() return render(request, 'company/index.html', {'form': form})Intente pasar una instancia del modelo de Organización,
def some_function(request): form = BranchForm() if request.method == 'POST': form = BranchForm(request.POST, request.FILES) if form.is_valid(): form.save(commit=False) organisation_instance = Organisation.objects.get(id = request.user.which_organization.id ) form.branch_name = organisation_instance print("User organization: ", request.user.which_organization) form.save() return render(request, 'company/index.html', {'form': form})