Python Django form_有效错误。有人能找到错误吗?

Python Django form_有效错误。有人能找到错误吗?,python,django,django-forms,django-generic-views,Python,Django,Django Forms,Django Generic Views,我正在尝试使用CreateView上URL中的值 我的模型是这样的:Categoria>Serie 我制作了一个URL,它的路径是path('nova-serie/',NovaSerie.as_view(),name='nova_serie'), 创建新系列的URL如下所示:/nova Serie/3 我正在尝试使用表单\u valid,但我收到以下消息: 无法分配“'3'”:“Serie.categoria”必须是“categoria”实例。 views.py class NovaSerie(

我正在尝试使用CreateView上URL中的值

我的模型是这样的:Categoria>Serie

我制作了一个URL,它的路径是
path('nova-serie/',NovaSerie.as_view(),name='nova_serie'),

创建新系列的URL如下所示:/nova Serie/3

我正在尝试使用
表单\u valid
,但我收到以下消息:

无法分配“'3'”:“Serie.categoria”必须是“categoria”实例。

views.py
class NovaSerie(CreateView):
型号=系列
形式=系列形式
模板名称='nova\u serie.html'
success\u url=reverse\u lazy('home'))
def表单_有效(自身、表单):
url=self.request.path\u info
parte_final_url=url.replace('/nova serie/','')
form.instance.categoria=parte_final_url
返回super(NovaSerie)。表格有效(表格)
forms.py
class系列表单(forms.ModelForm):
类元:
型号=系列
字段=(
“意甲”,
)
小部件={
“title”:forms.TextInput(),#attrs={class=“title”}
}

这里有人能帮我吗?

不需要在路径上进行字符串处理。您可以使用
self.kwargs
获取URL参数。此外,如果要指定
.categoria
id
,则应设置
.categoria\u id

class NovaSerie(CreateView):
    model = Serie
    form_class = SerieForm
    template_name = 'nova_serie.html'
    success_url = reverse_lazy('home')

    def form_valid(self, form):
        form.instance.categoria_id = self.kwargs['categoria']
        return super().form_valid(form)

这样,如果值不是整数,则不会触发视图。

在url路径中,它必须包含数据类型,例如:
path('patient/appointment//update/',patientPointmentUpdateView.as_view(),name=“patientPointmentUpdate”),
查看我的,它显示我输入并发送一个int,它将是主键。@bryant谢谢。。。但它不是主键。。。在我的情况下是一个外键…谢谢分享这个。。。但是随着这些更改,Django向我发送了一条错误消息:“super”对象没有“form_valid”属性@andrenavares:是的,您使用的
super
方法错误。在Python-2.x中,它与
self
,但在Python-3.x中,您可以简单地使用
super()
。消息错误:外键约束失败
class NovaSerie(CreateView):model=Serie form\u class=SerieForm template\u name='nova\u Serie.html'success\u url=reverse\u lazy('home')def form\u valid(self,form):form.instance.categoria\u id=self.kwargs['categoria']return super()。form\u valid(form)
感谢您抽出时间。。。我真的很感激it@AndreNevares:这意味着不存在id=3的
Categoria
,因此URL不包含可引用的有效内容。
path('nova-serie/<int:categoria>', NovaSerie.as_view(), name='nova_serie'),