相关疑难解决方法(0)

物理与逻辑/软删除数据库记录?

执行逻辑/软删除记录(即设置一个表明记录被删除的标志)而不是实际或物理删除记录的优点是什么?

这是常见做法吗?

这样安全吗?

sql database soft-delete

105
推荐指数
9
解决办法
7万
查看次数

49
推荐指数
3
解决办法
2万
查看次数

ForeignKey不允许空值

我正在使用Django REST Framework 2.0.

这是我的模型类:

class Mission(models.Model):
    assigned_to = models.ForeignKey('auth.User',
                                    related_name='missions_assigned',
                                    blank = True)
Run Code Online (Sandbox Code Playgroud)

这是我的观点类:

class MissionList(generics.ListCreateAPIView):
    model = Mission
    serialize_class = MissionSerializer
Run Code Online (Sandbox Code Playgroud)
  1. 多部分表单在浏览器中呈现,assigned_to字段为空.

  2. 发布原始JSON时,我收到以下错误消息:

Cannot assign None: "Mission.assigned_to" does not allow null values.

django django-rest-framework

33
推荐指数
3
解决办法
5万
查看次数

将ManyToManyField迁移为null tr​​ue,空白为true,无法识别

我做了一个模型改变

standard = models.ManyToManyField(Standard)
Run Code Online (Sandbox Code Playgroud)

standard = models.ManyToManyField(Standard, blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

此应用程序的南模式迁移无法识别更改?

类似于这个问题,这个问题没有得到解决: 南方迁移和许多可能领域的变化

django django-models database-schema django-south django-migrations

20
推荐指数
1
解决办法
8181
查看次数

为什么django模型有空白和空的不同选项?

在django模型中定义字段时,有两种方法可以说该字段是空的. null表示它在数据库中可以为空,并blank表示该字段在表单中可以为空.为什么这些不同?每次我设置一个而不是另一个出错.允许它们不同似乎只是邀请表单的问题,允许您创建数据库不接受的对象.

换句话说,当你会永远使用null=True,blank=Falsenull=False,blank=True在Django模型?

django django-models

10
推荐指数
2
解决办法
8747
查看次数

Django如何使表单字段可选

在django中如何使表单字段可选?

我的模特,

class Student(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=40)
    email = models.EmailField()
Run Code Online (Sandbox Code Playgroud)

python django

7
推荐指数
3
解决办法
7436
查看次数

使用 Django rest 框架发布空日期字段错误

模型.py

class Form(models.Model):
    no = models.IntegerField()
    finish_date = models.DateField(blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

序列化程序.py

class FormSerializer(serializers.ModelSerializer):
    class Meta:
        model = Form
        fields = '__all__'
Run Code Online (Sandbox Code Playgroud)

如果我尝试:

http http://127.0.0.1:8000/api/forms no=112 "finish_date"=""
Run Code Online (Sandbox Code Playgroud)

它返回错误:

"finish_date": [
    "Date has wrong format. Use one of these formats instead: YYYY[-MM[-DD]]."
]
Run Code Online (Sandbox Code Playgroud)

如果我将 "finish_date" 设置为 null ,则这篇文章有效。并且StringField(blank=True, null=True)不会得到错误。

怎么解决?

django django-rest-framework

5
推荐指数
2
解决办法
3457
查看次数

创建一个支持多种帖子的博客

我是Django的新用户,我正在试图弄清楚如何创建一个可以支持许多种(类型)元素的模型.

这是情节:我想在我的应用程序上创建一个Blog模块.要做到这一点,我创建了一个模型,描述一个博客页面.还有一个模型PageElement,用于描述博客上的帖子.每个页面都可以包含许多PageElement.

一个PageElement可以有多种类型,因为我希望我的用户可以张贴像只是一个简短的文字,或只是一个视频,或只是一个画面.我也希望(例如)用户可以发布对另一个模型的引用(比如对用户的引用).根据用户发布的内容类型,HTML页面将以不同的方式显示每个PageElement.

但我不知道什么是声明PageElement类以支持所有这些情况的正确方法:(

这是我的页面模型:

class Page(models.Model):
    uuid = models.UUIDField(default=uuid.uuid4, editable=False, unique=True)

    # Basical informations
    title = models.CharField(max_length=150)
    description = models.TextField(blank=True)

    # Foreign links
    user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.SET_NULL,
        null=True,
        related_name='pages_as_user'
    )

    created_at = models.DateTimeField(default=timezone.now)

    # Other fields ....

    class Meta:
        indexes = [
            models.Index(fields=['uuid']),
            models.Index(fields=['user', 'artist'])
        ]
Run Code Online (Sandbox Code Playgroud)

目前,我有两个解决方案,第一个使用继承:当您在博客上创建新帖子时,您创建一个继承自PageElement模型的Element.以下是我针对每种情况的不同模型:

class PageElement(models.Model):
    page = models.ForeignKey(
        Page,
        on_delete=models.CASCADE,
        related_name='%(class)s_elements'
    )

    updated_at = models.DateTimeField(default=timezone.now)
    created_at = models.DateTimeField(default=timezone.now)

class PageImageElement(PageElement):
    image = …
Run Code Online (Sandbox Code Playgroud)

python oop django

5
推荐指数
1
解决办法
187
查看次数

Django中的IntegrityError

我在其中一种表单中添加了Many2Many字段,现在在提交时收到IntegrityError。确切的错误文本是

/add_person/hireterm_person.mail_lists的IntegrityError不能为NULL

在我添加新字段之前,它运行良好。当我查看有关调试更改的POST数据时,我看到它已通过,因此我不知道中断发生在哪里。

楷模

from django.db import models
from django.forms import ModelForm
from django import forms
from django.contrib.auth.models import User

class Mailists(models.Model):
    name = models.CharField(blank=True, max_length=100)
    email = models.CharField(blank=True, max_length=100)

    def __unicode__(self):
        return u'%s' % (self.name)

class Person(models.Model):
    ROLE_CHOICES = (
        ('Mrkt', 'Marketing'),
        ('Fin/Off', 'Finance / Office'),
        ('Care', 'Care'),
        ('Sales', 'Sales'),
        )
    ROLE_TYPE = (
        ('Full', 'Full Time'),
        ('Part', 'Part Time'), 
        ('Intern', 'Intern'),
        )

    first_name = models.CharField(blank=True, max_length=100)
    last_name = models.CharField(blank=True, max_length=100)
    date_added = models.DateField(auto_now_add=True)
    date_start = models.DateField(auto_now=False)
    role = …
Run Code Online (Sandbox Code Playgroud)

python django

1
推荐指数
1
解决办法
2万
查看次数

Django,当使用ForeignKey字段时,哪个更好的是blank = True或null = True?

来自:https : //docs.djangoproject.com/en/2.0/ref/models/fields/#django.db.models.Field.null

避免在基于字符串的字段(例如CharField和TextField)上使用null。如果基于字符串的字段具有null = True,则意味着它具有“无数据”的两个可能值:NULL和空字符串。在大多数情况下,为“无数据”使用两个可能的值是多余的; Django约定是使用空字符串,而不是NULL。

那么在ForeignKey领域上有什么更好的呢?ForeignKey字段不是基于字符串的字段,不是吗?

我想知道 what is convention for ForeignKey in django.

null =真是更好还是空白=真是更好?在性能,便利性或其他方面。

django foreign-keys

1
推荐指数
2
解决办法
864
查看次数

Django UUIDFIeld unique=True、blank=True 和 null=True 的行为是否正确?

我正在向数据库添加一个字段:

identifier = models.UUIDField(unique=True, null=True, blank=True)

但我很好奇,当有人在管理员中保存没有值的实例时,这是否会表现得像 CharField 或数字字段。它会尝试将值保存为空字符串""还是会聪明地将其保存为null?我使用 Postgres 作为数据库。我看过CharField 的其他答案,但没有任何与 UUIDField 相关的答案。

我的最终目标是拥有一个保证唯一的字段,并且默认为null. 写成这样会不会更合适:

identifier = models.UUIDField(unique=True, null=True, default=None)或者如果没有提供值,管理表单验证会抱怨吗?

django django-models

0
推荐指数
1
解决办法
2133
查看次数

django模型中Null和Blank有什么区别

status = models.IntegerField(choices=list(CAMPAIGN_STATUS), default=CAMPAIGN_STATUS.PAUSE,
          verbose_name=_("status"), blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

Blank=True, null=True 有什么区别?

django django-models

-2
推荐指数
1
解决办法
6118
查看次数