【发布时间】:2017-12-20 23:29:01
【问题描述】:
我在使用 Django ModelForms 时遇到问题,这是其中之一
我想在 Django 中为用户模型添加一些额外的字段,因此在 models.py 中创建了一个 CustomeUser 模型
models.py
class CustomeUser(models.Model):
user = models.OneToOneField(User)
City = models.ForeignKey(City, on_delete=models.CASCADE, blank=True, null=True)
Gender = models.ForeignKey(Gender, null=True, blank=True)
DateOfBirth = models.DateField(null=True, blank=True)
ProfilePicture = models.ImageField(verbose_name="Profile Picture", upload_to=user_directory_path, null=True, blank=True, max_length=255)
Address = models.CharField(max_length=255, blank=True, null=True)
def __str__(self):
return str(self.user)
现在我想用 ModelForm 制作 EditProfileForm,这就是我所做的:
forms.py
class EditProfileForm(forms.ModelForm):
firstname = forms.CharField(max_length=35,required=False)
lastname = forms.CharField(max_length=35, required=False)
cityid = forms.ModelChoiceField(queryset=City.objects.values('id').all(), required=False)
genderid = forms.ModelChoiceField(queryset=Gender.objects.values('id').all(), required=False)
dateofbirth = forms.DateField(required=False)
profilepicture = forms.ImageField(required=False, max_length=255)
address = forms.CharField(max_length=255, required=False)
class Meta:
model = CustomeUser
fields = ['firstname' ,'lastname' ,'cityid' , 'genderid', 'dateofbirth', 'profilepicture', 'address' ]
我真的不知道如何以最好的方式做到这一点
【问题讨论】:
标签: django python-3.x django-models django-forms