在Django中重写模型的未填充字段

时间:2014-04-24 10:08:38

标签: python django models

我有一个在django中创建的对象Obj模型,其中包含一些字段(A,B,C) 在数据库中创建一些对象时,人们没有填写B字段。 现在我想通过B过滤对象,如: 对于all_Obj中的obj:     如果obj.B ="某事":         obj.delete()

但我收到此错误:users.models.DoesNotExist:配置文件匹配查询不存在 对于该行:if c.main_name.user == user [0]: 我在写作时遇到同样的错误 如果不是c.main_name.user: 那我怎么解决这个问题呢?我无法重写此字段,因为我无法解决此问题,我无法通过此字段过滤删除一些我不需要的条目

非常感谢你的帮助.. :)

在请求中c是概念:

class Concept(models.Model):
    partial_url = models.CharField(max_length=200, unique=True)
    insert_links = models.BooleanField(default=True)
    is_category = models.BooleanField(default=False)
    date_modified = models.DateTimeField(auto_now=True)
    main_name = models.ForeignKey('Literal', related_name='concepts', blank=True, null=True,
    unique=True)
    category = models.ForeignKey('self', blank=True, null=True)
deletion_requests = generic.GenericRelation(DeletionRequest,
        content_type_field='entry_ct', object_id_field='entry_id')

c.main_name是Literal:

class Literal(models.Model):
    """Represents particular string literal of the concept"""
    name = models.CharField(max_length=200)
    norm_name = models.CharField(max_length=200)
    concept = models.ForeignKey(Concept)
    user = models.ForeignKey(Profile)
    date_modified = models.DateTimeField(auto_now=True)

不存在的字段 - 用户

1 个答案:

答案 0 :(得分:0)

YourModel.objects.filter(B='something').delete()

或空外键:

YourModel.objects.filter(B__isnull=True).delete()