Django 保存前检查重复对象

Django 保存前检查重复对象,django,Django,你好,所以: 如何在保存前检查项目是否重复?我得到了一个与我的问题类似的答案,但我需要添加一个验证,该验证也是由谁创建的。我目前使用的答案来自于此。它目前正在工作,但是,如果其他用户也创建了相同的记录,我希望他们能够这样做。仅限于当前用户 我所做的是: def clean(self, *args, **kwargs): cleaned_data = super().clean() job_title = cleaned_data.get("job_title"

你好,所以:

如何在保存前检查项目是否重复?我得到了一个与我的问题类似的答案,但我需要添加一个验证,该验证也是由谁创建的。我目前使用的答案来自于此。它目前正在工作,但是,如果其他用户也创建了相同的记录,我希望他们能够这样做。仅限于当前用户

我所做的是:

def clean(self, *args, **kwargs):
    cleaned_data = super().clean()
    job_title = cleaned_data.get("job_title")
    others = cleaned_data.get("others")

    matching_job_item = PropositionItem.objects.filter(job_title=job_title, others=others)
    if self.instance:
        matching_job_item = matching_job_item.exclude(pk=self.instance.pk, status="0")
    if matching_job_item.exists():
        msg = u"Job Tile: %s has already exist." % job_title
        raise forms.ValidationError(msg)
    else:
        return self.cleaned_data

我想要的:用户A不能创建重复项,而用户B只能创建用户A创建的项,但只能创建一次。

您可以将用户信息与您在def clean()中使用的实例链接起来吗?这是我当前正在尝试的操作,但我仍在检查网络如何操作。您必须拥有安装用户吗?使用django用户类的用户可能需要单独登录?@rodjames您不希望两个或多个字段在一起是唯一的吗?你可以用a来做这个。此外,还应将用户设置为未保存的模型实例传递给表单,以便将用户包括在验证中。剩下的留给表单(它在实例上调用
validate\u unique
)。我实际上希望它们是唯一的,有5个字段,如果包括用户,则为6个字段。RN我通过将我的用户ID导入我的表单,使表单正常工作。导入只需要一段时间。我也一起读过unique_,但我无法在我的应用程序上使用它。