【发布时间】:2015-10-21 20:12:08
【问题描述】:
目前,我有一个 Django 项目,其中包含一个名为 Event 的模型,该模型具有多个属性,其中一个是 full_name。
from django.db import models
class Event(models.Model):
description = models.CharField(blank=False, max_length=200)
full_name = models.CharField(blank=False, null=True, max_length=200, unique=True)
我想要实现的是防止用户进行两个事件,其中一个被称为MyEvent,另一个被称为myevent,所以我希望名称不区分大小写。此外,我来自一个带有一些有趣字母的国家,例如š。用户已经习惯了不支持这些字母的计算机系统,所以我还想阻止两个事件的存在,一个叫šoo,另一个叫soo。
基本上,我有一个函数 myfunction 并希望有一个模型约束,这样对于模型的每个实例,值 myfunction(instance.full_name) 都是唯一的。
我的第一个想法,哪种工作,是有一个具有干净全名函数的模型表单:
def clean_full_name(self):
return myfunction(self.cleaned_data.get('full_name'))
这行得通。但是,我现在有一个视图,我想在其中显示所有事件的全名,在这里,我想显示原始名称。使用我的方法,这是不可能的(该功能仅是单向的)。有没有优雅的解决方案?
【问题讨论】: