Django ModelForm - Create instance with foreign key

Jamie S

I'm wondering what the correct way to create a model instance with a django model form is when it contains a required FK? I think it may have to do with the exclude class property, but in the view I am trying override this before save.

Model:

 class Profile(models.Model):
    client = models.OneToOneField('auth.User')
    first_name = models.TextField(blank=True,)
...

Form:

class ProfileForm(floppyforms.ModelForm):
    class Meta:
        exclude = ('client',)
        model = Profile

        widgets = {
            'first_name': floppyforms.TextInput(attrs={'placeholder': 'First Name'}),
...

View:

def post(self, request):
    form = ProfileForm(request.POST)
    if form.is_valid():
        form.save(commit=False)
        form.client = User.objects.create(username=request.POST['email'],)
        form.save()
        return redirect('/success')
    return redirect('/error')

The error:

django.db.models.fields.related.RelatedObjectDoesNotExist: Profile has no client.

Looking at the Admin, I can see that the user has been created however. enter image description here

Cheers

Shang Wang

You have an error in your views.py. It should be:

def post(self, request):
    form = ProfileForm(request.POST)
    if form.is_valid():
        new_profile = form.save(commit=False)
        new_profile.client = User.objects.create(username=request.POST['email'],)
        new_profile.save()
        return redirect('/success')
    return redirect('/error')

You shouldn't assign the client to your form, but to the in-memory instance new_profile, then call new_profile.save() to save the new_profile to the database.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Displaying foreign key attributes in ModelForm Django

From Dev

foreign key as initial value not passed to the ModelForm in django

From Dev

Displaying foreign key attributes in ModelForm Django

From Dev

Django - Foreign Key must be an instance

From Dev

Modelform prepopulate foreign key

From Dev

How to Stop Django ModelForm From Creating Choices for a Foreign Key

From Dev

How to make a modelform editable foreign key field in a django template?

From Dev

Validate multiple related objects through foreign key field in Django ModelForm

From Dev

Django model instance from foreign key

From Dev

Django model single instance per foreign key

From Dev

Django Create Foreign key to external table

From Dev

How to create forms for foreign key django

From Dev

Django Create Foreign key to external table

From Dev

keeping django models clean method validating foreign key object and using ModelForm save

From Dev

Django (Models): how to get instance from foreign key

From Dev

Django - Creating an instance via the serializer with a foreign key reference

From Dev

Specify the database for a Django ModelForm instance

From Dev

How get Instance in Django ModelForm

From Dev

Django Rest Framework - Create without providing a foreign key value

From Dev

foreign key relations in django bulk_create query?

From Dev

Auto-create model with foreign key when model is created - Django

From Dev

Create mapping to the foreign key

From Dev

Create foreign key to a view

From Dev

MariaDB - Create Foreign key

From Dev

create phpMyAdmin foreign key

From Dev

Create mapping to the foreign key

From Dev

Create foreign key to a view

From Dev

Django :: Reference foreign key

From Dev

Django generic foreign key

Related Related

  1. 1

    Displaying foreign key attributes in ModelForm Django

  2. 2

    foreign key as initial value not passed to the ModelForm in django

  3. 3

    Displaying foreign key attributes in ModelForm Django

  4. 4

    Django - Foreign Key must be an instance

  5. 5

    Modelform prepopulate foreign key

  6. 6

    How to Stop Django ModelForm From Creating Choices for a Foreign Key

  7. 7

    How to make a modelform editable foreign key field in a django template?

  8. 8

    Validate multiple related objects through foreign key field in Django ModelForm

  9. 9

    Django model instance from foreign key

  10. 10

    Django model single instance per foreign key

  11. 11

    Django Create Foreign key to external table

  12. 12

    How to create forms for foreign key django

  13. 13

    Django Create Foreign key to external table

  14. 14

    keeping django models clean method validating foreign key object and using ModelForm save

  15. 15

    Django (Models): how to get instance from foreign key

  16. 16

    Django - Creating an instance via the serializer with a foreign key reference

  17. 17

    Specify the database for a Django ModelForm instance

  18. 18

    How get Instance in Django ModelForm

  19. 19

    Django Rest Framework - Create without providing a foreign key value

  20. 20

    foreign key relations in django bulk_create query?

  21. 21

    Auto-create model with foreign key when model is created - Django

  22. 22

    Create mapping to the foreign key

  23. 23

    Create foreign key to a view

  24. 24

    MariaDB - Create Foreign key

  25. 25

    create phpMyAdmin foreign key

  26. 26

    Create mapping to the foreign key

  27. 27

    Create foreign key to a view

  28. 28

    Django :: Reference foreign key

  29. 29

    Django generic foreign key

HotTag

Archive