2016-07-26 5 views
0

Я пытаюсь сделать регистрационную форму для расширения пользовательской модели django. Он имеет два отношения: от одного до User и Address. Форма должна иметь все поля от User, UserDetails и Address. Но я изо всех сил пытаюсь получить правильный вид и форму. Просто имея ModelForm для UserDetails в сочетании с FormView не добавляет полей для User и Address.Индивидуальные отношения 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

мне пришлось создавать различные формы для каждой модели. Затем объедините все экземпляры, созданные из форм. См. this answer for more details

0

Вы пропустили Юникода или ул метод декларации в модели классов. Вы всегда должны заявлять об этом. Помните, что str для python 3.x и unicode для python 2.x.

Вот пример для класса Address и питона 2:

def __unicode__(self): 
    return '%s %s' % (self.field1, self.field2) 
Смежные вопросы