Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django __init__()得到一个意外的关键字参数';用户';当我尝试过滤时_Django_Django Models_Django Forms_Django Templates_Django Views - Fatal编程技术网

Django __init__()得到一个意外的关键字参数';用户';当我尝试过滤时

Django __init__()得到一个意外的关键字参数';用户';当我尝试过滤时,django,django-models,django-forms,django-templates,django-views,Django,Django Models,Django Forms,Django Templates,Django Views,我想筛选request.user已完成的餐厅。遵循文档,但我在尝试筛选时不断得到\uuuu init\uuuu()得到一个意外的关键字参数user forms.py models.py views.py detail.html 根据,这是ModelForm的\uuuu init\uuu方法的签名: def\uuu init\uuu(self,*args,**kwargs) 查看是否没有用户?这就是错误消息告诉您的。 如果您想获得用户,请尝试通过self.request.user(或类似的方式,具

我想筛选request.user已完成的餐厅。遵循文档,但我在尝试筛选时不断得到
\uuuu init\uuuu()
得到一个意外的关键字参数
user

forms.py models.py views.py detail.html 根据,这是ModelForm的
\uuuu init\uuu
方法的签名:

def\uuu init\uuu(self,*args,**kwargs)

查看是否没有
用户
?这就是错误消息告诉您的。 如果您想获得用户,请尝试通过
self.request.user
(或类似的方式,具体取决于您使用的中间件)


希望有帮助

您忘记在视图中添加
form\u class
属性

class ItemCreate(CreateView):
    model = Item
    success_url = reverse_lazy('post:index')
    form_class = LocationCreate  # <- here

    def form_valid(self, form):
        if form.is_valid():
            roote = restaurant.objects.filter(owner=self.request.user)
            instance = form.save(commit=False)
            instance.owner = self.request.user
        return super(ItemCreate, self).form_valid(form)

    def get_form_kwargs(self):
        kwargs = super(ItemCreate, self).get_form_kwargs()
        kwargs['user'] = self.request.user 
        return kwargs
class ItemCreate(CreateView):
型号=项目
success\u url=reverse\u lazy('post:index')

form_class=LocationCreate#请尽可能提供完整的堆栈跟踪,以便清除初始参数中的用户,并尝试仅使用过滤器self.request.user?谢谢您的帮助。作为旁注,我还得到了一个错误,说我需要在views.py中选择fields或form_类。我选择了中班
class Restaurant(models.Model):
    restaurant_name    = models.CharField(max_length=250)
    restaurant_photo   = models.ImageField(upload_to='roote_image')
    category      = models.ManyToManyField(Category)
    timestamp     = models.DateTimeField(auto_now_add=True, null=True)
    updated       = models.DateTimeField(auto_now=True, null=True)
    owner          = models.ForeignKey(User)

    def get_absolute_url(self):
        return reverse('post:detail', kwargs={'pk': self.pk})


class Item(models.Model):
    restaurant= models.ForeignKey(Roote, on_delete=models.CASCADE, null=True)
    food_name = models.CharField(max_length=1000)
    category = models.CharField(max_length=250)
    owner      = models.ForeignKey(User)
    def __str__(self):
        return  self.food_name

    def get_absolute_url(self):
        return reverse('post:detail', kwargs={'pk': self.pk})
class ItemCreate(CreateView):
    model = Item
    fields = ['restaurant','category ', 'food_name ']
    success_url = reverse_lazy('post:index')


    def form_valid(self, form):
        if form.is_valid():
            roote = restaurant.objects.filter(owner =self.request.user)
            instance = form.save(commit=False)
            instance.owner = self.request.user
        return super(ItemCreate, self).form_valid(form)

    def get_form_kwargs(self):
        kwargs = super(ItemCreate, self).get_form_kwargs()
        kwargs['user'] = self.request.user 
        return kwargs
{% block body %}

    <div class="col-sm-6 col-sm-offset-3">
        <img src="{{ restaurant.restaurant_photo.url }}" style="width: 250px;" >


        <h1>{{ restaurant.restaurant_name }}</h1>

         {% for item in restaurant.item_set.all %}
             {{ item.food_name }}: {{ item.category}}
             <br>

         {% endfor %}
return form_class(**self.get_form_kwargs())
TypeError: __init__() got an unexpected keyword argument 'user'
class ItemCreate(CreateView):
    model = Item
    success_url = reverse_lazy('post:index')
    form_class = LocationCreate  # <- here

    def form_valid(self, form):
        if form.is_valid():
            roote = restaurant.objects.filter(owner=self.request.user)
            instance = form.save(commit=False)
            instance.owner = self.request.user
        return super(ItemCreate, self).form_valid(form)

    def get_form_kwargs(self):
        kwargs = super(ItemCreate, self).get_form_kwargs()
        kwargs['user'] = self.request.user 
        return kwargs