Действительно ли возможно протестировать объект против типа компонента и/или наследованного типа?

Я вижу, вы уже определили 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
6
задан Dan Roberts 5 June 2012 в 18:50
поделиться

3 ответа

Вы также можете использовать 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>
7
ответ дан 8 December 2019 в 13:02
поделиться

вы можете использовать имя или полное имя из функции 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 () в зависимости от тип объекта.

3
ответ дан 8 December 2019 в 13:02
поделиться

Вы можете использовать GetMetaData, чтобы найти тип. Немного быстрого кода:

<cfif GetMetaData(currentObj).type eq "compath.dog">
8
ответ дан 8 December 2019 в 13:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: