Django 为什么我会得到AttributeError:';用户';对象没有属性';zipcode';?
我得到一个错误:Django 为什么我会得到AttributeError:';用户';对象没有属性';zipcode';?,django,django-models,Django,Django Models,我得到一个错误: AttributeError: 'User' object has no attribute 'zipcode' 当用户填写表格销售商品时,我会出现此错误 以下是我的看法: def get_entry(request): if request.method == 'POST': f = SellForm(request.POST) if f.is_valid(): form=f.save(commit=False
AttributeError: 'User' object has no attribute 'zipcode'
当用户填写表格销售商品时,我会出现此错误
以下是我的看法:
def get_entry(request):
if request.method == 'POST':
f = SellForm(request.POST)
if f.is_valid():
form=f.save(commit=False)
form.author = request.user
form.zipcode = request.user.zipcode
form.pubdate = datetime.datetime.now
form.save()
else:
f = SellForm()
return render(request, 'sell.html', {'form': f})
以下是我的模型:
from django.db import models
from django.contrib.auth.models import User
from django.utils.translation import ugettext as _
from userena.models import UserenaBaseProfile
from django.conf import settings
class MyProfile(UserenaBaseProfile):
user = models.OneToOneField(User,
unique=True,
verbose_name=_('user'),
related_name='my_profile')
city = models.TextField(null=True, blank=True)
state = models.TextField(null=True, blank=True)
zipcode = models.IntegerField(_('zipcode'),
max_length=5, null=True, blank=True)
coverpic = models.ImageField(upload_to="/site_media/media/covers/", null=True, blank=True)
class Entry(models.Model):
headline= models.CharField(max_length=200,)
body_text = models.TextField()
author=models.ForeignKey(settings.AUTH_USER_MODEL, related_name='entryauthors')
pub_date=models.IntegerField(max_length=8)
zipcode =models.ForeignKey(settings.AUTH_USER_MODEL, related_name='entryzipcodes')
price1 = models.TextField()
price2 = models.TextField()
item_picture = models.ImageField(upload_to="/site_media/media/items/", null=True, blank=True)
这是我的表格:
class SellForm(ModelForm):
class Meta:
model = Entry
fields = ['headline', 'body_text', 'author', 'pub_date', 'zipcode', 'price1', 'price2', 'item_picture']
我对模型做了什么错误吗?正如您所知,甚至在您的评论中重申,zipcode是MyProfile的属性,而不是User的属性。那你为什么要在用户上访问它呢?您需要遵循与配置文件的关系:
form.zipcode = request.user.my_profile.zipcode
(请注意,“form”是这里变量的一个非常糟糕的名称:您拥有的是Entry的一个实例,因此您可能应该相应地命名它。)您从哪里得到这个错误?
zipcode
是MyProfile
的属性。我已经更新了这个问题。我怀疑我在get_entry view方法中做错了什么。请获取SellForm
definition。好的,这是我的表单。