0

Tag (BlogPost)의 해당 부분에 적어도 하나의 Tag 인스턴스가 있기를 원하거나 만들지 않아야합니다. (null = False와 같은 효과). 나는 많은 노력을했지만 이러한 윤곽을 적용 할 수 없었다. 어떤 아이디어?Django의 일반적인 관계 제약

class Tag(models.Model): 
    content_type = models.ForeignKey(ContentType) 
    object_id = models.PositiveIntegerField() 
    content_object = generic.GenericForeignKey('content_type', 'object_id') 

    text = models.CharField("text", max_length=255) 

    class Meta: 
     unique_together = ('content_type', 'object_id', 'text',) 


class BlogPost(models.Model): 
    title = models.CharField("title", max_length=255) 
    tags = generic.GenericRelation(Tag, verbose_name="tags") 


class TagInline(generic.GenericTabularInline): 
    model = Tag 
    extra = 1 


class BlogPostAdmin(admin.ModelAdmin): 
    inlines = (TagInline,) 
+1

방금 ​​깨달은 것은이 강제성을 만들 수 없으므로 둘 다 서로를 만들어야한다는 것입니다. 이중 자물쇠. 그래서 주제가 닫혔습니다 = / – j7nn7k

답변

0

데이터베이스 제약 조건의 형태로 이것을 원한다면 그런 것이 있는지 확신 할 수 없습니다.

그렇지 않으면 모델에 clean(self)function을 무시합니다. 사용자 지정 유효성 검사에 사용할 수 있습니다.

def clean(self): 
    # validate that this model has one or more tag