如何在URL上获取外键集并在django CreateView上使用它 url.py views.py

问题描述

感谢您的时间...

如果有人可以帮助我获取显示在URL上的外键并在Django CreateView上使用它。

我正在尝试创建一个简单的应用来组织立法。为此,我在数据库中具有这种关系:类别有很多Series,而Series有很多帖子。

我已经这样完成 urls.py 的一条路径

(...)
path('nova-serie/<categoria>',NovaSerie.as_view(),name='nova_serie'),(...)

我只想传递从URL中获取值并另存为外键,而无需用户再次输入。

I want to get the foreign key and save it without the user has to type it again

view.py

class NovaCategoria(CreateView):
    model = Categoria
    form_class = CategoriaForm
    template_name = 'nova_categoria.html'
    success_url = reverse_lazy('home')

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

models.py

class Categoria(models.Model):
    categoria = models.CharField(
        max_length=200,verbose_name="Nome da categoria",help_text="colocar aqui o texto de ajuda")
   
    class Meta:
        verbose_name_plural = "Categorias"
        verbose_name = "categoria"

    def __str__(self):
        return self.categoria

class Serie(models.Model):
    serie = models.CharField(
        max_length=200,verbose_name="Série",help_text="colocar aqui o texto de ajuda")
    categoria = models.ForeignKey(Categoria,default=1,on_delete=models.SET_DEFAULT)
    
    class Meta:
        verbose_name_plural = "serie"

    def __str__(self):
        return self.serie

forms.py

class SerieForm(forms.ModelForm):
    class Meta:
        model = Serie
        fields = (
            'serie','categoria',)
        widgets = {
            'title': forms.TextInput(),# attrs={class="title"}
            'categoria': forms.TextInput(attrs={'class': "green",'value': object }),# attrs={class="title"}
        }

class CategoriaForm(forms.ModelForm):
    class Meta:
        model = Categoria
        fields = (
            'categoria',# attrs={class="title"}
        }

如果您发现此帖子有任何问题,请告诉我。我将很高兴进行更改。

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)