0
관련 모델에서 파생 된 두 개의 폼을 가져와 동일한 페이지에 표시하고 함께 저장하려고합니다.여러 개의 관련 django 모델 폼 작업
class userinfo(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, primary_key= True,
on_delete=models.CASCADE)
name = models.CharField(max_length = 200, blank = True)
email = models.EmailField(max_length= 300, default = 'Null')
phone = models.CharField(max_length= 10, default = 'Null')
def __unicode__(self):
return self.user
class seller_event(models.Model):
event_id = models.AutoField(primary_key=True)
user = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE)
title = models.CharField(max_length = 300, default = 'Null')
description = models.CharField(max_length = 300, default = 'Null')
location = models.CharField(max_length= 300, default = 'Null')
cash_payment = models.BooleanField(default=False)
paytm_payment = models.BooleanField(default=False)
def __unicode__(self):
return str(self.event_id) + str(self.title)
당신이 볼 수 있듯이, 사용자 (내 sqlite3를의 DB에서 USER_ID로 저장)는 사용자 정보 테이블에서 외래 키 :
이 내 models.py입니다. 각 판매자별로 여러 이벤트가 나열되도록 노력하고 있습니다.
forms.py :는
class Userinfo(forms.ModelForm):
class Meta:
model = userinfo
exclude = {'user'}
class Seller_event(forms.ModelForm):
class Meta:
model = seller_event
exclude = {'user'}
views.py :는
def newlist(request):
if request.user.is_authenticated():
user = request.user
print user
if request.method == 'POST':
userinfo_form = Userinfo(request.POST, instance = user.userinfo)
seller_event_form = Seller_event(request.POST, instance =
user.seller_event)
if userinfo_form.is_valid() and seller_event_form.is_valid():
userinfo_form.save()
seller_event_form.save()
return redirect('/home')
else:
userinfo_form = Userinfo()
seller_event_form = Seller_event()
return render(request, 'home/newlist.html', {'userinfo_form':
userinfo_form, 'seller_event_form': seller_event_form })
HTML :
{% load static %}
<form action="/home/newlist/" method="post">
{% csrf_token %}
{{ userinfo_form.as_p }}
{{ seller_event_form.as_p }}
<input type="submit">
</form>
나는이 문제를 의심 userinfo의 경우 사용자 pk가 onetoone 인 반면 모델을 식별하는 데는 문제가 없습니다. 그러나 이는 seller_event의 경우가 아닙니다. 여기는 fk입니다. 그렇다면 어떻게하면 사용자를 fk로 받아 들일 수 있을까요?
미리 감사드립니다.
감사합니다. seller_event 양식의 인스턴스를 제거해야합니까? – user241691