Django-Slug字段对于一个用户必须是唯一的,但对于所有用户则不是唯一的



我知道我们可以通过unique=True选项要求SlugField是唯一的,但是否可以只要求它对特定用户是唯一的?这样两个不同的用户可以有相同的SlugField,但一个用户不能有两个相同的SlugField?

模型。py:

from django.db import models
from django.contrib.auth.models import User
class ezApp(models.Model):
    name = models.SlugField(max_length=50, unique=True )
    date_created = models.DateTimeField('date created')
    date_updated = models.DateTimeField('date updated')
    created_by = models.ForeignKey(User)
    in_use = models.BooleanField()

您需要使用unique_together,如下所述:
https://docs.djangoproject.com/en/dev/ref/models/options/#unique-一起

class MyModel(models.Model):
    # ...
    class Meta:
        unique_together = ('name', 'created_by')

你还必须在表单级别做一些临时处理,这样当用户试图添加重复的名称时,他们就会收到可用的错误消息。

最新更新