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

How to show ManyToMany fields using CreateView in Django 1.8

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

My Model:

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

My View:

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

My template:

{% 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 %}

My result

为什么我的字段 "Autores"(many2many) 和 "Editor"(foreign-key) 没有正确显示?。谢谢。

尝试为 CreateView 的视图赋予形式。使用您的模型制作 ModelForm

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