Должно иметь значение для поля "id", прежде чем это отношение "многие-ко-многим" может быть использовано
У меня такая ошибка (необходимо иметь значение для поля "id", прежде чем можно будет использовать это отношение "многие-ко-многим"). Я не знаю, как ее исправить. Я использую отношение "многие-ко-многим" для поля coauthor, которое связано с CustomUser. Также у каждого соавтора есть профиль. Поэтому я хочу, чтобы я мог использовать соавтора по ссылке в шаблоне на профиль.
Models.py
class ArticleExample(models.Model):
author = models.ForeignKey(
"users.CustomUser", on_delete=models.SET_NULL, null=True
)
coauthor = models.ManyToManyField(
get_user_model(), blank=True, related_name="coauthor")
title = models.CharField(max_length=150)
text = models.CharField(max_length=150)
views.py
class ArticleExampleCreateView(CreateView):
form_class = ArticleExampleForm
model = ArticleExample
template_name = 'example/articlecreateveiw.html'
def form_valid(self, form):
form.instance.author = self.request.user
return super(ArticleExampleCreateView, self).form_valid(form)
def post(self, request, * args, **kwargs):
form = self.get_form()
if form.is_valid():
obj = form.save(commit=False)
obj.author = self.request.user
obj.save()
form.save_m2m()
return redirect('/')
return self.render_to_response({'form': form})
Также это мои модели пользовательского пользователя и профиля
class CustomUser(AbstractUser):
date_birthday = models.DateTimeField(
default=timezone.now, blank=True, null=True)
class Profile(models.Model):
slug = models.SlugField(unique=True)
user = models.OneToOneField(get_user_model(), on_delete=models.CASCADE)
bio = models.TextField(null=False, blank=True)