Django에서 새 레코드를 만들려고 할 때 외래 키 오류

Abautista

일대 다 관계로 연결된 두 가지 모델 인 활동과 사용자가 있습니다. 사용자는 하나의 활동에만 연결할 수 있지만 활동은 여러 사용자 항목에서 참조 할 수 있습니다.

// Activity
id | username_id | activity | initial_date | ending_date
--  ------------   --------   ------------  ------------
1  |             |   test   |   2020-01-20 |    None
45 |             |   test45 |   2020-01-25 |    None

// User
username_id |       email       | username | last_login | date_joined |is_admin | is_active | is_staff | is_superuser
------------ -----------------  ----------  ------------  -----------  --------- --- --------------------------------
    2        |  [email protected]   |   ab     |  2020-01-20 |  2020-01-15|   No    |      No   |     No   |   No      
    3        |  [email protected]   |   ab     |  2020-01-21 |  2020-01-18|   No    |      No   |     No   |   No      

//models.py 

from django.utils import timezone
from django.contrib.auth import get_user_model
User = get_user_model()

class Activity(models.Model):
    id           = models.AutoField(primary_key=True)
    username_id  = models.ForeignKey(User, on_delete=models.CASCADE)
    activity     = models.CharField(null=False, max_length=140)
    initial_date = models.DateField(default=timezone.now(), null=False)
    ending_date  = models.DateField(default=timezone.now(), null=False)

class User(AbstractBaseUser):
   username_id  = models.AutoField(primary_key=True)
   email        = models.EmailField(verbose_name="email", max_length=60, unique=True)
   username     = models.CharField(max_length=30, unique=True)   

   last_login   = models.DateTimeField(verbose_name='last login', auto_now=True)
   date_joined  = models.DateTimeField(verbose_name='date joined', auto_now_add=True)
   is_admin     = models.BooleanField(default=False)
   is_active    = models.BooleanField(default=True)
   is_staff     = models.BooleanField(default=False)
   is_superuser = models.BooleanField(default=False)

   USERNAME_FIELD = 'email' 
   REQUIRED_FIELDS = ['username']


//forms.py
from .models import Activity
from django import forms

class ActivityModelForm(forms.ModelForm):
    model = Activity
    fields = ['username_id', 'activity', 'initial_date', 'ending_date']

def __init__(self, *args, **kwargs):
    super(ActivityModelForm, self).__init__(*args, **kwargs)
    self.fields['username_id'].required = False
    self.fields['activity'].required = True
    self.fields['initial_date'].required = False
    self.fields['ending_date'].required = False

표에서 볼 수 있듯이 username_id 열에는 빈 값이 있으므로 views.py새 활동을 저장하려고 할 때 코드를 수정 했지만 이제 오류가 발생합니다.ValueError: Cannot assign "3": Activity.username" must be a user instance.

def create_activity(request):
    form_create = ActivityModelForm(request.POST or None)
    username_id = None
    if request.user.get_username():
        username_id = request.user.id

    if form_create.is_valid():
        obj = form_create.save(commit=False)
        obj.username = username_id
        obj.save()
        form_create = ActivityModelForm()
    template_name = 'activity/formActivity.html'
    context = {'form': form_create}
    return render(request, template_name, context}
비 몬스

사용자 모델의 사용자를 요청에 할당합니다.

     username_id = User.objects.get(user=request.user)
     if form_create.is_valid():
            obj = form_create.save(commit=False)
            obj.username = username_id
            obj.save()
     form_create = ActivityModelForm()

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Piranha CMS를 새로 설치할 때 외래 키 제한 오류

분류에서Dev

외래 키가있는 테이블에서 레코드를 삭제할 때 Entity Framework에서 오류 발생

분류에서Dev

SQL Server에서 외래 키를 설정할 때 오류

분류에서Dev

Python에서 새 빈 목록을 만들려고 할 때 구문 오류

분류에서Dev

rowid를 외래 키로 사용하려고 할 때 sqlite의 외래 키 불일치 오류

분류에서Dev

SQlite에서 외래 키를 만들 때 오류가 발생했습니다.

분류에서Dev

새 이벤트를 만들려고 할 때 부족한 인증 범위 오류

분류에서Dev

createUser Mutation을 통해 새 사용자를 만들려고 할 때 400 오류

분류에서Dev

하위 행을 삭제하려고 할 때 외래 키 오류

분류에서Dev

주어진 필드에 지정된 클래스에 대한 비교를 만들려고 할 때 오류

분류에서Dev

SSH 호스트 키를 다시 만들려고 할 때 '호스트 키를로드 할 수 없음'오류

분류에서Dev

새 React 앱을 만들려고 할 때 오류 404

분류에서Dev

외래 키를 만들 때 오류 (1005) 발생

분류에서Dev

사이다에서 Clojure 코드를 새로 고치려고 할 때 예외

분류에서Dev

mysql에서 트리거를 만들려고 할 때 구문 오류

분류에서Dev

EJB에서 타이머를 만들려고 할 때 예외

분류에서Dev

외부 클래스에서 새 인스턴스를 만들 때 StackOverflow 오류가 발생합니다.

분류에서Dev

두 개의 외래 키를 추가 할 때 1215 오류

분류에서Dev

외래 키를 추가 할 때 MySQL의 오류 1215

분류에서Dev

외래 키를 추가하려고 할 때 MYSQL 오류가 발생하는 이유는 무엇입니까?

분류에서Dev

SQL에서 테이블에 대한 외래 키를 만들 때 오류가 발생합니까?

분류에서Dev

외래 키를 추가하기 위해 테이블을 변경하려고 할 때 오류 코드 1170이 표시됩니다.

분류에서Dev

외래 키 django-tastypie를 사용하여 모델에 게시 할 때 오류가 발생했습니다.

분류에서Dev

SharePoint 2013 통합으로 새 팀 프로젝트를 만들려고 할 때 TFS 2013 오류 TF218017

분류에서Dev

Windows에서 확장을 만들려고 할 때 PostgreSQL 오류

분류에서Dev

레코드를 만들 때 중복 키 오류

분류에서Dev

Eclipse의 jaxb 클래스에서 스키마를 생성하려고 할 때 오류 발생

분류에서Dev

Laravel 마이그레이션으로 외래 키를 생성 할 때 MySQL 오류

분류에서Dev

Django, 새 모델은 서버에 액세스하려고 할 때 오류를 발생시킵니다.

Related 관련 기사

  1. 1

    Piranha CMS를 새로 설치할 때 외래 키 제한 오류

  2. 2

    외래 키가있는 테이블에서 레코드를 삭제할 때 Entity Framework에서 오류 발생

  3. 3

    SQL Server에서 외래 키를 설정할 때 오류

  4. 4

    Python에서 새 빈 목록을 만들려고 할 때 구문 오류

  5. 5

    rowid를 외래 키로 사용하려고 할 때 sqlite의 외래 키 불일치 오류

  6. 6

    SQlite에서 외래 키를 만들 때 오류가 발생했습니다.

  7. 7

    새 이벤트를 만들려고 할 때 부족한 인증 범위 오류

  8. 8

    createUser Mutation을 통해 새 사용자를 만들려고 할 때 400 오류

  9. 9

    하위 행을 삭제하려고 할 때 외래 키 오류

  10. 10

    주어진 필드에 지정된 클래스에 대한 비교를 만들려고 할 때 오류

  11. 11

    SSH 호스트 키를 다시 만들려고 할 때 '호스트 키를로드 할 수 없음'오류

  12. 12

    새 React 앱을 만들려고 할 때 오류 404

  13. 13

    외래 키를 만들 때 오류 (1005) 발생

  14. 14

    사이다에서 Clojure 코드를 새로 고치려고 할 때 예외

  15. 15

    mysql에서 트리거를 만들려고 할 때 구문 오류

  16. 16

    EJB에서 타이머를 만들려고 할 때 예외

  17. 17

    외부 클래스에서 새 인스턴스를 만들 때 StackOverflow 오류가 발생합니다.

  18. 18

    두 개의 외래 키를 추가 할 때 1215 오류

  19. 19

    외래 키를 추가 할 때 MySQL의 오류 1215

  20. 20

    외래 키를 추가하려고 할 때 MYSQL 오류가 발생하는 이유는 무엇입니까?

  21. 21

    SQL에서 테이블에 대한 외래 키를 만들 때 오류가 발생합니까?

  22. 22

    외래 키를 추가하기 위해 테이블을 변경하려고 할 때 오류 코드 1170이 표시됩니다.

  23. 23

    외래 키 django-tastypie를 사용하여 모델에 게시 할 때 오류가 발생했습니다.

  24. 24

    SharePoint 2013 통합으로 새 팀 프로젝트를 만들려고 할 때 TFS 2013 오류 TF218017

  25. 25

    Windows에서 확장을 만들려고 할 때 PostgreSQL 오류

  26. 26

    레코드를 만들 때 중복 키 오류

  27. 27

    Eclipse의 jaxb 클래스에서 스키마를 생성하려고 할 때 오류 발생

  28. 28

    Laravel 마이그레이션으로 외래 키를 생성 할 때 MySQL 오류

  29. 29

    Django, 새 모델은 서버에 액세스하려고 할 때 오류를 발생시킵니다.

뜨겁다태그

보관