я следующие две модели: models.pyДжанго: ManyToManyField отсутствует из таблицы
class Genre(models.Model):
name = models.CharField(max_length=50, blank=True, unique=True)
def __unicode__(self):
return self.name
class Movies(models.Model):
title = models.CharField(max_length=50, blank=False)
plot = models.CharField(max_length=500, blank=True)
actors = models.CharField(max_length=200, blank=True)
director = models.CharField(max_length=100, blank=True)
genre = models.ManyToManyField(Genre)
def __unicode__(self):
return self.title
forms.py
class MovieForm(forms.ModelForm):
genre = forms.CharField(widget=forms.TextInput)
class Meta:
model = Movies
, когда я запускаю SyncDB movies , genre , movies_genre
таблицы создаются
movies_genre table has (id, movies_id , genre_id)
Однако в фильмах стола, не cloumn не создана для жанрового поля, которое должно нравится genre_id
почему genre_id поле отсутствует из таблицы фильмов?
EDIT: ................. как я добавить данные:
def genre_save(request):
genre_name = request.POST['genre']
genre_obj = Genre(name=genre_name)
genre_obj.save()
movie_obj = Movies(genre=genre_obj.id)
movie_obj.save() // error
TypeError 'жанр' является недопустимым аргументом ключевое слово для этой функции
def add_movie(request):
if request.method=="POST":
genre_save(request)
form_post = MovieForm(request.POST)
form_post.save()
/// other stuff....
спасибо, наконец, это правильно – navyad