Форум сайта python.su
0
у меня есть таблица User и Note. каждый объект note содержит ссылку на объект user. У меня возникает ошибка при попытки создания второго объекта note, первый экземпляр для зарегистрированного пользователя создается без проблем, а вот дальше он не хочет создавать.
from django.db import models from django.contrib.auth.models import User class Note(models.Model): title = models.CharField(max_length=200) content = models.CharField(max_length=200) user = models.ForeignKey(User, unique=False) def new_note(request): if request.method == 'POST': f = New_Note(request.POST) if f.is_valid(): title = f.cleaned_data['title'] content = f.cleaned_data['content'] new = Note.objects.create(title=title,content=content,user=request.user) new.save(); return HttpResponseRedirect(reverse('note:index')) else: f = New_Note() return render(request, 'note/new_note.html', {'f': f})
column user_id is not unique
user = models.ForeignKey(User)
Cannot assign "<django.utils.functional.SimpleLazyObject object at 0x00000000038FB9B0>": "Note.user" must be a "User" instance.Cannot assign "<django.utils.functional.SimpleLazyObject object at 0x00000000038FB9B0>": "Note.user" must be a "User" instance.
"id" integer NOT NULL PRIMARY KEY, "title" varchar(200) NOT NULL, "content" varchar(200) NOT NULL, "user_id" integer NOT NULL REFERENCES "auth_user" ("id")
Офлайн
568
f = New_Note(request.POST) if f.is_valid(): title = f.cleaned_data['title'] content = f.cleaned_data['content'] new = Note.objects.create(title=title,content=content,user=request.user) new.save()
f = New_Note(request.POST) if f.is_valid(): new = f.save()
Офлайн
0
FishHookне поняла вас… у меня же объект состоит из трех элементов , в форме только два поля отображаются
new = f.save()
Офлайн
568
trulyalya
не поняла вас… у меня же объект состоит из трех элементов , в форме только два поля отображаются
f = New_Note(request.POST) if f.is_valid(): new = f.save(commit=False) new.user = request.user nerw.save(commit=True)
Офлайн
0
FishHookвозникает ошибка
'New_Note' object has no attribute 'save'
Офлайн
0
проблема в том, что он почему то считает что foreign key уникальный. в чем проблема я не понимаю… первый объект прекрасно создается и сохраняется в бд
Офлайн
568
модель покажите
Офлайн
0
from django.db import models from django.contrib.auth.models import User class Note(models.Model): title = models.CharField(max_length=200) content = models.CharField(max_length=200) user = models.ForeignKey(User, unique=False)
[code python][/code]
Офлайн
568
проблема в том, что он почему то считает что foreign key уникальный. в чем проблема я не понимаю… первый объект прекрасно создается и сохраняется в бдГде в вашем коде создается первый объект, а где второй? Я вижу создание ождного объекта.
Офлайн
0
объект у меня создается в этом методе
def new_note(request): if request.method == 'POST': f = New_Note(request.POST) if f.is_valid(): title = f.cleaned_data['title'] content = f.cleaned_data['content'] new = Note.objects.create(title=title,content=content,user_id=request.user.id) new.save(); return HttpResponseRedirect(reverse('note:index')) else: f = New_Note() return render(request, 'note/new_note.html', {'f': f})
Офлайн