【问题标题】:Check if a field is left empty - Django检查字段是否为空 - Django
【发布时间】:2021-09-25 02:35:58
【问题描述】:

在 Django 中有没有办法检测一个字段是否为空,我的意思是检测一个字段是否为每个提交的模型条目留空?

编辑:

模型.py

    def save(self, *args, **kwargs):
        if self.date1 is None:
            self.date1 = None
        if self.date2 is None:
            self.date2 = None

        super().save(*args, **kwargs)  # Call the "real" save() method.

views.py

if self.date1 is None:
    print('DID IT')

HTML

{% if date1 == None %}
    <h1>1 </h1>
{% endif %}

【问题讨论】:

    标签: python django django-models field


    【解决方案1】:

    您可以intercept/overridesave() 功能在保存之前检查您的目标字段是否为空:

    class MyModel(models.Model):
        ...
        def save(self, *args, **kwargs):
            if self.some_field1 is None:
                # Do something
            if self.some_field2 is None:
                # Do something
            ...
            super().save(*args, **kwargs)  # Call the "real" save() method.
    ...
    

    请注意,如果您使用的是bulk_create,则不会调用save(),因此您可能希望以不同的方式处理这种情况。

    【讨论】:

    • 我快到了,我会在我到达时发布我的代码更新。我有两个问题。首先什么是批量创建?其次更重要的是我可以在“做某事”的地方添加什么?我对它们都有 .myfield == None 并且我尝试了其他变体但是我如何在 HTML 中得到它来做以及那里的 if 语句?
    • 它在编辑中
    • 此代码在模型本身中。这将做的是每次将新记录保存到数据库时,都会首先调用它。因此,您可以检查是否有任何字段为 NULL (None) 并采取相应措施(这将是放入 # Do something 的逻辑)。 bulk_create 仅当您正在执行 MyModel.objects.bulk_create() 时。
    猜你喜欢
    • 2011-06-29
    • 1970-01-01
    • 2014-04-28
    • 2012-02-21
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多