小编C4X*_*C4X的帖子

Django:在抽象基类上使用与“%(class)s”不同的 related_name 来解释不规则的复数

我有以下型号:

from django.db import models
from foo.bar.models import Location


class AbstractShop(models.Model):
    location = models.ForeignKey(Location, on_delete=models.CASCADE, related_name="%(class)s")

    class Meta(self):
        abstract = True


class Bakery(AbstractShop):
    some_field = models.BooleanField("Some field", default=True)

    class Meta:
        verbose_name = "Bakery"
        verbose_name_plural = "Bakeries"


class Supermarket(AbstractShop):
    some_other_field = models.CharField("Some other field", max_length=20)

    class Meta:
        verbose_name = "Supermarket"
        verbose_name_plural = "Supermarkets"
Run Code Online (Sandbox Code Playgroud)

现在,Supermarket以及Bakery继承location-ForeignKey 从AbstractShop.
如果我想查询Bakery模型上的反向关系Location,我必须使用bakerys(而不是正确的bakeries) as related_name- 我不想要它,因为它在语法上是错误的且不直观。

所以我的问题是:

  1. 有什么办法可以使用verbose_name_pluralasrelated_name …

django inheritance querying plural

6
推荐指数
0
解决办法
1380
查看次数

在没有用户或登录的情况下我是否需要 CSRF 保护?

我正在构建一个 Django 应用程序,人们可以在其中注册活动。每个人都可以注册,没有用户帐户或登录,即没有身份验证。验证是通过一封带有链接的电子邮件完成的,必须单击该链接才能激活注册。我不确定是否需要为这些表单启用 CSRF 保护。归结为以下问题:CSRF 保护对于每个 POST 请求(不离开域)都是必要的,还是仅对于登录用户的 POST 请求是必要的?

CSRF 攻击可以做什么?我知道您可以使用它来规避同源策略并以用户的名义发布您想要的任何内容,但是您也可以使用它来更改用户的真实帖子或窃取他们的数据吗?如果恶意网站可以了解用户发布的数据或悄悄地更改他们的请求,这将是我使用它的理由。如果这只是意味着另一个网站可以创建额外的注册,那么就不行,因为其他人也可以。(我知道在任何地方使用它并不花费太多,事实上我可能会这样做,但我试图更好地理解原理)

security django csrf

4
推荐指数
1
解决办法
2150
查看次数

标签 统计

django ×2

csrf ×1

inheritance ×1

plural ×1

querying ×1

security ×1