我一直在试图找出一种自动填充字段的方法,我希望用户登录以在新事件发生时填充Created_by字段。以下是我的原始代码
created_by = models.ForeignKey(
settings.AUTH_USER_MODEL,
verbose_name=_('Created by'),
related_name='events',
blank=False, null=False,
default='',
)
我尝试导入用户并将其放入字段但是......
from django.contrib.auth.models import User
created_by = models.ForeignKey(
settings.AUTH_USER_MODEL,
User,
verbose_name=_('Created by'),
related_name='events',
blank=False, null=False,
default='',
)
根据我放“用户”的位置,如果我将用户放在“settings.Auth_USER_MODEL”之后,我会得到不同的错误,我收到此错误:
User has no field named <class 'django.contrib.auth.models.User'>
如果我把它放在“settings.Auth_USER_MODEL”之前,我会收到此错误:
User has no field named 'auth.User'
该字段位于
之内class Event(EventModelMixin):
这与我遇到这些问题的原因有什么关系吗?
我正在使用django 1.8,
所以现在我明白我不能从模型视图中做到这一点,我目前正在尝试编辑视图,我已经编写了一段代码:
class EventCreateView(CreateView):
form_class = CreateEvent
model = Event
def form_valid(self, form):
Event = form.save(commit=False)
Event.created_by = User
Event.save()
return HttpResponseRedirect(self.get_success_url())
但是我得到了这个我无法理解的错误。
Cannot assign "<class 'django.contrib.auth.models.User'>": "Event.created_by" must be a "User" instance.