在我的网络应用程序中,我在 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')
但是,这会导致运行IntegrityError
whenget_or_create()
方法,因为creator_id
为 null
...
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()
有人可以告诉我是否有办法解决这个问题?