Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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 ';成员';对象没有属性';全部';_Django_Django Forms - Fatal编程技术网

Django ';成员';对象没有属性';全部';

Django ';成员';对象没有属性';全部';,django,django-forms,Django,Django Forms,我的模型定义为: class MembershipHistory(models.Model): mem_name = models.ForeignKey(Member, on_delete=models.CASCADE, related_name='mem_number') project_number = models.IntegerField() project_name = models.CharField(max_length=200) evaluator

我的模型定义为:

class MembershipHistory(models.Model):
    mem_name = models.ForeignKey(Member, on_delete=models.CASCADE, related_name='mem_number')
    project_number = models.IntegerField()
    project_name = models.CharField(max_length=200)
    evaluator_remark = models.TextField(null=True, blank=True)
这是我制作
ForeignKey

class Member(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    name = models.CharField(max_length=200)
    membership_number = models.CharField(max_length=10)
我把我的表格定义为

class MembershipHistoryForm(forms.Form):
    def __init__(self,*args, **kwargs):
        self.user = kwargs.pop('user')
        super(MembershipHistoryForm, self).__init__(*args, **kwargs)
        self.fields['mem_name'].queryset = Member.objects.get(user=self.user)
   #mem_name = forms.ModelChoiceField(empty_label="NAME")

    class Meta:
        model = MembershipHistory
        fields = '__all__'
        widgets = {
            'project_number':forms.TextInput(attrs={'placeholder':'Project Number'}),
            'project_name':forms.TextInput(attrs={'placeholder':'Project Name'}),
            'evaluator_remark':forms.Textarea(attrs={'placeholder':'Evaluator Remark'}),
        }
现在,无论何时实例化表单,都不会出现以下错误

Django Version: 1.10.4
Exception Type: AttributeError
Exception Value: 'Member' object has no attribute 'all'

关于错误在哪里有什么想法吗?

我假设是因为您没有将查询集分配给
成员名
查询集

使用
filter
而不是
get

Member.objects.filter(user=self.user)

虽然此时,我想知道为什么您需要一个queryset,但从表单中排除此字段,然后在保存实例之前设置用户会更有意义。

如果您检查正确的django文档,您可以看到

get()

get(**kwargs)

Returns the object matching the given lookup parameters
这意味着它在适当的情况下返回的对象不是queryset,而是
form
需要queryset,因此使用
get
方法而不是
filter

self.fields['mem_name'].queryset = Member.objects.filter(user=self.user)