登录

时间:2016-08-03 09:22:49

标签: python django django-models

我一直在试图找出一种自动填充字段的方法,我希望用户登录以在新事件发生时填充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.

0 个答案:

没有答案