Я вижу, вы уже определили unique_together
в Meta
, так что вы можете использовать try except
from django.db import IntegrityError
try:
# your model create or update code here
except except IntegrityError as e:
if 'unique constraint' in e.message:
# duplicate detected
Вы также можете использовать IsInstanceOf (). Хотя вы все равно должны использовать полный путь, его также можно использовать для определения наследования или идентификации компонентов, реализующих определенный интерфейс.
<cfif IsInstanceOf(obj, "compath.Dog")>
yes. it is a dog component {woof}
<cfelse>
some other type of component
</cfif>
<cfif IsInstanceOf(obj, "compath.AnimalInterface")>
yes. it implements the animal interface
<cfelse>
no. it must be vegetable or mineral ...
</cfif>
вы можете использовать имя или полное имя из функции getmetadata ().
<cfif GetMetaData(currentObj).name eq "compath.dog">
...do something specific with dog objects...
</cfif>
или
<cfif GetMetaData(currentObj).fullname eq "compath.dog">
...do something specific with dog objects...
</cfif>
документы здесь getmetadata () о том, что возвращает getmetadata () в зависимости от тип объекта.
Вы можете использовать GetMetaData, чтобы найти тип. Немного быстрого кода:
<cfif GetMetaData(currentObj).type eq "compath.dog">