私の Web アプリでは、aCategory
と a の間に m2m 関係があります。User
class Category(models.Model):
users = models.ManyToManyField(User,related_name='category_users')
title = models.CharField(max_length=200)
description = models.TextField()
ユーザーがカテゴリを作成しようとすると、私はこれを行います
category,created = Category.objects.get_or_create(title__iexact=category_title,defaults={'title':category_title,'description':category_title})
の編集ページをユーザーに提供する必要がありますCategory
。カテゴリを作成した人だけが説明を編集できるように提供することを考えました。そこで、モデルに作成者フィールドを追加してみました。
class Category(models.Model):
users = models.ManyToManyField(User,related_name='category_users')
title = models.CharField(max_length=200)
description = models.TextField()
creator = models.ForeignKey(User,related_name='category_creator')
ただし、nullであるため、これによりIntegrityError
whenget_or_create()
メソッドが実行されます。creator_id
...
category_title = category_title_form.cleaned_data['title']
category_title = category_title.strip()
if len(category_title)>0:
category,created = Category.objects.get_or_create(title__iexact=category_title,defaults={'title':category_title,'description':category_title})
if request.user not in category.users.all():
category.users.add(request.user)
category.save()
if created:
category.creator = request.user
category.save()
これを解決できる方法があるかどうか誰かに教えてもらえますか?