如何在Django 1.8中使用CreateView显示ManyToMany字段

时间:2015-08-10 00:16:58

标签: django django-models django-templates django-views django-1.8

我在Django 1.8中做了一个基本的应用程序,我正在使用Create-View,我不知道为什么创建表单没有很多TOAR字段,也没有以前在我的模型中定义的外键字段。这是我的代码:

  

我的模特:

class Autor(models.Model):
    nombre = models.CharField(max_length=30)
    ....
class Editor(models.Model):
    nombre = models.CharField(max_length=30)
    ...
class Libro(models.Model):
   titulo = models.CharField(max_length=100)
   autores = models.ManyToManyField(Autor) #MANY2MANY FIELD
   editor = models.ForeignKey(Editor) #FOREIGN KEY FIELD
   fecha_publicacion = models.DateField()
   portada = models.ImageField(upload_to = 'portadas/')

   def __unicode__(self):
    return self.titulo
  

我的观点:

class LibroCreateView(CreateView):
   model = Libro
   template_name = 'biblioteca/crear.html'
   fields = ['titulo', 'autores', 'editor', 'fecha_publicacion', 'portada']
  

我的模板:

{% block main %}
<form action="" enctype="multipart/form-data" method="POST">{% csrf_token %}
    <table>
        {{form.as_table}}   
    </table>
    <input type="submit" name="crear" value="Crear">
</form> <br>
{% endblock main %}
  

我的结果   image

为什么我的字段“Autores”(many2many)和“Editor”(外键)没有正确显示?感谢。

1 个答案:

答案 0 :(得分:1)

尝试将表单提供给CreateView的视图。使用您的模型制作ModelForm

在那里你可以查询外键和多对多字段。 您可以随意展示