我想實現一個類別模型,其中名稱有unique=True
, 但實際上我仍然可以添加具有不同情況的相同類別名稱。django模型不區分大小寫Charfield
即我有一個名爲食品 我仍然能夠增加食品,糧食,食品類,食品類
是其背後的任何理念?或者這是一項正在進行的工作。
因爲在現實世界中,如果我想到類別食品,它總是食物,不管它曾經提及過自己的情況。
預先感謝您看看這個。
我想實現一個類別模型,其中名稱有unique=True
, 但實際上我仍然可以添加具有不同情況的相同類別名稱。django模型不區分大小寫Charfield
即我有一個名爲食品 我仍然能夠增加食品,糧食,食品類,食品類
是其背後的任何理念?或者這是一項正在進行的工作。
因爲在現實世界中,如果我想到類別食品,它總是食物,不管它曾經提及過自己的情況。
預先感謝您看看這個。
要回答我的問題:
我發現我可以對我的模型清潔方法。所以我添加
class Category(models.Model):
name = models.CharField(max_length=200, unique=True)
def clean(self):
self.name = self.name.capitalize()
它正利用的第一個字母,然後由該save
方法,它調用的方法validate_unique
提高錯誤處理。
將列設置爲不區分大小寫的排序規則應解決此問題。您可能需要在SQL級別執行此操作。
您的意思是將列設置爲「區分大小寫」?問題是如何在Django中做到這一點。 – Sarang 2015-05-14 09:22:16
這對我來說非常有用。謝謝.. :) – suhailvs 2013-10-05 04:41:59
2017:工作得很好! – zerohedge 2017-11-08 08:13:01