小编Ser*_*jik的帖子

在django中区分null = True,blank = True

当我们在django中添加数据库字段时,我们通常会写models.CharField(max_length=100, null=True, blank=True).同样是用ForeignKey,DecimalField等等.有什么基本的区别

  1. null=True 只要
  2. blank=True 只要
  3. null=True, blank=True

在相对于不同的(CharField,ForeignKey,ManyToManyField,DateTimeField)字段.使用1/2/3有哪些优点/缺点?

python django django-models

819
推荐指数
14
解决办法
22万
查看次数

如何在Django查询集过滤中做不相等的操作?

在Django模型QuerySets中,我看到有一个__gt__ltfor的比较值,但是有__ne/ !=/ <>(不等于?)

我想用不等于过滤掉:

例:

Model:
    bool a;
    int x;
Run Code Online (Sandbox Code Playgroud)

我想要

results = Model.objects.exclude(a=true, x!=5)
Run Code Online (Sandbox Code Playgroud)

!=不正确的语法.我试过__ne,<>.

我最终使用:

results = Model.objects.exclude(a=true, x__lt=5).exclude(a=true, x__gt=5)
Run Code Online (Sandbox Code Playgroud)

python django django-models django-queryset

608
推荐指数
15
解决办法
34万
查看次数

如何将两个字段"唯一"定义为情侣

有没有办法在Django中定义几个字段是唯一的?

我有一个卷(期刊)表,我不想要同一期刊的一个卷号.

class Volume(models.Model):
    id = models.AutoField(primary_key=True)
    journal_id = models.ForeignKey(Journals, db_column='jid', null=True, verbose_name = "Journal")
    volume_number = models.CharField('Volume Number', max_length=100)
    comments = models.TextField('Comments', max_length=4000, blank=True)
Run Code Online (Sandbox Code Playgroud)

我试图unique = True在字段中添加属性journal_id,volume_number但它不起作用.

python django django-models

345
推荐指数
4
解决办法
10万
查看次数

什么是在Django中使用的`related_name`?

什么是related_name对on ManyToManyFieldForeignKey字段有用的参数?例如,给出以下代码,有什么影响related_name='maps'

class Map(db.Model):
    members = models.ManyToManyField(User, related_name='maps',
                                     verbose_name=_('members'))
Run Code Online (Sandbox Code Playgroud)

python django many-to-many foreign-key-relationship

339
推荐指数
5
解决办法
17万
查看次数

Django - 如何使用South重命名模型字段?

我想更改模型中特定字段的名称:

class Foo(models.Model):
    name = models.CharField()
    rel  = models.ForeignKey(Bar)
Run Code Online (Sandbox Code Playgroud)

应改为:

class Foo(models.Model):
    full_name     = models.CharField()
    odd_relation  = models.ForeignKey(Bar)
Run Code Online (Sandbox Code Playgroud)

使用南方最简单的方法是什么?

python django django-models django-south

208
推荐指数
5
解决办法
4万
查看次数

如何卸载使用pip install --user安装的软件包

--userpip 有一个选项可以为每个用户安装一个Python包:

pip install --user [python-package-name]
Run Code Online (Sandbox Code Playgroud)

我使用此选项在我没有root访问权限的服务器上安装软件包.我现在需要的是卸载当前用户的已安装软件包.我试图执行这个命令:

pip uninstall --user [python-package-name]
Run Code Online (Sandbox Code Playgroud)

但我得到了:

no such option: --user
Run Code Online (Sandbox Code Playgroud)

pip install --user除了手动查找和删除软件包之外,如何卸载我安装的软件包?

我发现了这篇文章

pip无法从每个用户的site-packages目录中卸载

其中描述了不支持从用户目录卸载软件包.根据文章,如果它是正确实施然后与

pip uninstall [package-name]
Run Code Online (Sandbox Code Playgroud)

安装的软件包也将在用户目录中搜索.但问题仍然存在.如果在系统范围内和每个用户安装相同的软件包怎么办?如果有人需要定位特定的用户目录怎么办?

python pip virtualenv python-3.x

181
推荐指数
5
解决办法
32万
查看次数

Django:为什么有些模型字段会相互冲突?

我想创建一个包含2个用户链接的对象.例如:

class GameClaim(models.Model):
    target = models.ForeignKey(User)
    claimer = models.ForeignKey(User)
    isAccepted = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)

但是在运行服务器时出现以下错误:

  • 字段'target'的访问者与相关字段'User.gameclaim_set'发生冲突.将related_name参数添加到'target'的定义中.

  • 字段'claimer'的访问者与相关字段'User.gameclaim_set'发生冲突.将related_name参数添加到'claimer'的定义中.

你能解释一下为什么我会收到错误以及如何修复它们吗?

python django django-models

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

如何在Django中过滤DateTimeField的日期?

我试图过滤DateTimeField与日期的比较.我的意思是:

MyObject.objects.filter(datetime_attr=datetime.date(2009,8,22))
Run Code Online (Sandbox Code Playgroud)

我得到一个空的查询集列表作为答案因为(我认为)我不考虑时间,但我想"随时".

Django有这么简单的方法吗?

我有时间在日期时间设置,但事实并非如此00:00.

python django datetime filter django-queryset

159
推荐指数
10
解决办法
16万
查看次数

如何使用Django Rest Framework包含相关的模型字段?

假设我们有以下模型:

class Classroom(models.Model):
    room_number = [....]

class Teacher(models.Model):
    name = [...]
    tenure = [...]
    classroom = models.ForeignKey(Classroom)
Run Code Online (Sandbox Code Playgroud)

假设不是按照ManyRelatedPrimaryKeyField函数得到这样的结果:

{
    "room_number": "42", 
    "teachers": [
        27, 
        24, 
        7
    ]
},
Run Code Online (Sandbox Code Playgroud)

让它返回包含完整相关模型表示的东西,如:

{
    "room_number": "42", 
    "teachers": [
        {
           'id':'27,
           'name':'John',
           'tenure':True
        }, 
        {
           'id':'24,
           'name':'Sally',
           'tenure':False
        }, 
    ]
},
Run Code Online (Sandbox Code Playgroud)

这可能吗?如果是这样,怎么样?这是个坏主意吗?

python django django-rest-framework

140
推荐指数
3
解决办法
6万
查看次数

创建动态选择字段

我在尝试理解如何在django中创建动态选择字段时遇到了一些麻烦.我有一个模型设置类似于:

class rider(models.Model):
     user = models.ForeignKey(User)
     waypoint = models.ManyToManyField(Waypoint)

class Waypoint(models.Model):
     lat = models.FloatField()
     lng = models.FloatField()
Run Code Online (Sandbox Code Playgroud)

我要做的是创建一个选择字段,其值是与该骑手相关联的航点(可以是登录的人).

目前我在我的表单中覆盖init,如下所示:

class waypointForm(forms.Form):
     def __init__(self, *args, **kwargs):
          super(joinTripForm, self).__init__(*args, **kwargs)
          self.fields['waypoints'] = forms.ChoiceField(choices=[ (o.id, str(o)) for o in Waypoint.objects.all()])
Run Code Online (Sandbox Code Playgroud)

但所有这一切都是列出所有航点,它们与任何特定的骑手没有联系.有任何想法吗?谢谢.

python django django-templates django-forms

127
推荐指数
3
解决办法
11万
查看次数