Python 表单始终无效/无法分配实例

Python 表单始终无效/无法分配实例,python,django,django-forms,django-views,Python,Django,Django Forms,Django Views,我为我的问题挣扎了一段时间。它继续我先前的问题: 我发现问题是这样的: class TranslatorChoice(forms.ModelForm): def __init__(self, *args, **kwargs): self.user_id = kwargs.pop('user_id',None) super(TranslatorChoice, self).__init__(*args, **kwargs) self.field

我为我的问题挣扎了一段时间。它继续我先前的问题:

我发现问题是这样的:

class TranslatorChoice(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        self.user_id = kwargs.pop('user_id',None)
        super(TranslatorChoice, self).__init__(*args, **kwargs)
        self.fields['owner'].queryset = Translator.objects.all().filter(owner = self.user_id)
    owner = forms.ModelChoiceField(queryset =  None)
    class Meta:
        model = Translator
        fields = ('owner', )
其“模式:

class Translator(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
    owner = models.ForeignKey(
        User,
        on_delete=models.CASCADE,
        related_name='created_translators'
    )
    def __str__(self):
        return str(self.user)
以及以下观点:

def link_translator(request):
    if request.method == 'POST':
        form = TranslatorChoice(request.POST)
        if  form.is_valid():
            pass
            return redirect('dashboard')
    else:
        form = TranslatorChoice(user_id=request.user)
通过上面的代码,表单给了我选择的选项,但每当我点击submit,表单就会要求我选择一个有效的选项。但是,如果我将
Translator.objects.all().filter(owner=self.user\u id)
更改为
Translator.objects.all()
form.is\u valid()
为true,但会出现另一个错误:

ValueError at /linkt/
Cannot assign "<Translator: rawkymonk>": "Translator.owner" must be a "User" instance.
ValueError位于/linkt/
无法分配“”:“Translator.owner”必须是“用户”实例。

我猜主要的问题是
modelcoocefield
,因此如果有替代方案,请告诉我。

owner
User
的外键,因此我认为queryset应该使用该模型。试一试

self.fields['owner'].queryset = User.objects.filter(id=self.user_id)

我没有测试上面的代码。

我测试了这个。这是一样的,每当我提交表格,它说无效的选择。