У меня есть простая модель, и я хочу сохранить ее с помощью ModelForm.django «нет такой таблицы» при использовании ModelForm.save
Вот код:
#models.py
class MyArchive(models.Model):
archive_id = models.CharField(max_length = 20, primary_key=True)
description = models.CharField(max_length = 50, blank = True)
archive_file = models.FileField(upload_to = "my_archives/")
#views.py
class MyArchiveForm(ModelForm):
class Meta:
model = MyArchive
def upload(request):
if request.method == 'POST':
form = MyArchiveForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return HttpResponse('uploaded success!')
else:
logger.debug("invalid form")
return HttpResponse('upload fail!')
Я синхронизируются БД и увидел таблицы, созданные. Но каждый раз, когда он идет в form.save, тогда говорит
Является ли способ сохранить с помощью ModelForm неправильно?
UPDATE: Что даже странно, что, когда я удалил эту строку: form.save()
, она не в if form.is_valid()
с той же ошибкой no such table
, но при запуске Джанго в режиме отладки, if form.is_valid()
работает отлично.
Вы пытались удалить всю базу данных и запустив 'syncdb' еще раз? Эта команда не распознает изменения в ваших моделях, а только новые! Если вы хотите направить изменения с ваших моделей на свою базу данных, попробуйте South. – Caumons
@Caumons Да, я пробовал, но он все еще не работает. Фактически, даже я удаляю 'form.save()', он терпит неудачу в 'if form.is_valid():', но он работает до того, как я что-то изменил, не мог вспомнить. – ThemeZ
Что не получается с 'form.is_valid()'? – Caumons