2016-07-26 31 views
0

我想爲django的用戶模型的擴展做一個註冊表單。它有兩個關係,一個到UserAddress。該表格需要具有User,UserDetailsAddress的所有字段。但我正在努力爭取正確的觀點和形式。只需將ModelFormUserDetails結合使用FormView不會將UserAddress的字段相加。一種形式的Django一對一關係

class User(AbstractBaseUser, PermissionMixin): 
    email = models.EmailField(unique=True) 


class UserDetails(model.Model): 
    date_of_birth = models.DateField() 
    user = models.ForeignKey(User, on_delete=models.CASCADE) 
    address = models.OneToOneField(Address, on_delete=models.CASCADE) 

class Address(model.Model): 
    field = models.CharField(max_length=100) 
    field2 = models.CharField(max_length=100) 

的表單和視圖是這樣的:

class UserRegistrationForm(ModelForm): 
    class Meta: 
     model = Orchestra 
     fields = '__all__' 

class UserRegistrationView(FormView): 
    form_class = UserRegistrationForm 
    template_name = 'users/register.html' 

<form action="" method="post"> 
    {% csrf_token %} 
    {{ form.as_table }} 
    <input type="submit" value="submit"> 
</form> 
+0

請張貼您的觀點和表格,並準確解釋您想做什麼,「努力獲得正確的觀點和形式」還不夠。 –

+0

我已添加視圖和表單。這給了我一個用戶的外鍵選擇字段,而不是charfield字段 – user6827

回答

0

你錯過了在模型類的的UnicodeSTR方法聲明。你應該永遠聲明它。 請記住,str是用於python 3.x,而unicode用於python 2.x.

下面是類地址和python 2個例子:

def __unicode__(self): 
    return '%s %s' % (self.field1, self.field2)