0

Я занимаюсь базовым приложением в Django 1.8, и я использую Create-View, я не знаю, почему форма создания не имеет много много полей, ключевое поле, ранее определенное в моей модели. Это мой код:Как показать поля ManyToMany с помощью CreateView в Django 1.8

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 

Мой Вид:

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) и "Редактор" (внешнего ключа) правильно показано ?. Благодарю.

ответ

1

Постарайтесь представить форму на вид CreateView. Внесите ModelForm с помощью вашей модели

Там вы можете сделать запрос для внешнего ключа и многих для многих полей. Вы можете представить их так, как вам нравится

+0

Конечно, у меня есть ModelForm, но все же оба, Мои много-ко-многим и поля с внешним ключом, не работают. Здесь я покажу вам образ моего кода ... однако, если я его разрешу, я опубликую свое решение. https://cloud.githubusercontent.com/assets/8607266/9178906/c0c49920-3f5e-11e5-9717-1baf77dad654.png – CarMoreno

+0

Ваш код здесь и код на снимке экрана отличаются. Используйте create view, и он просто сохранит модель в соответствии с вашей формой. простой .. – gamer

+0

Спасибо, я мог бы решить это :) – CarMoreno

Смежные вопросы