小编Ale*_*lla的帖子

Django Rest Framework如何使用基于ID的相关字段保存模型

我是DRF的新手.我有Record模型,看起来像这样:

class Records(models.Model):
    owner = models.ForeignKey(User, null=True)
    activity = models.ForeignKey(Activity, null=True)
    time_start = models.DateTimeField(null=True)
    time_end = models.DateTimeField(null=True)

  ...
Run Code Online (Sandbox Code Playgroud)

RecordSerializer就是这样一个:

class RecordSerializer(serializers.ModelSerializer):

    now = datetime.today()
    owner = serializers.Field(source='owner.username')
    time_start = serializers.DateTimeField(source='now')

    class Meta:
        model = Records
        fields = ("owner", "activity", "time_start")
Run Code Online (Sandbox Code Playgroud)

这就是观点:

class StartApiView(generics.CreateAPIView):
    model = Records
    serializer_class = RecordSerializer

    def pre_save(self, obj):
        obj.owner = self.request.user
Run Code Online (Sandbox Code Playgroud)

POST请求是从Backbone发送的,它包含一个带有活动ID的字段,例如"{activity:12}".如果我希望视图保存Record并将活动设置为id为12的Activity,我该怎么办?

django django-models django-rest-framework

8
推荐指数
2
解决办法
6352
查看次数

Django找不到Debug = False和Allowed_Hosts的静态文件

大家好我无法解决这个问题:如果我将DEBUG变为False,我就无法运行manage.py runserver:

CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False
Run Code Online (Sandbox Code Playgroud)

然后,假设我向ALLOWED_HOSTS添加了一些内容:

ALLOWED_HOSTS = ['*']
or
ALLOWED_HOSTS = ['localhost']
or
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']
Run Code Online (Sandbox Code Playgroud)

现在,我可以做'manage.py runserver',但静态文件不起作用.奇怪的.

如果我将DEBUG转为True,那么它将ALLOWED_HOSTS设置为nothing,localhost或*.所以,我猜这个问题与DEBUG有关.我不明白.

django django-settings django-staticfiles

8
推荐指数
2
解决办法
5409
查看次数

django rest框架。raise_exception =真实

我想知道什么时候应该使用serializer.is_valid(raise_exception=True)?如果我没有实现任何自定义验证,是否需要使用该raise_exeption=True标志?如果我的API没有提高怎么办ValidationErrors,这是不好的做法吗?如果是,那么为什么是默认值raise_exception=False?我只是想知道是否应该将其设置为True。谢谢你的建议。

django django-rest-framework

8
推荐指数
1
解决办法
2498
查看次数

Django Float 字段输入

创建接受浮点数并具有与 NumberInput 相同功能的 django 表单字段的最佳方法是什么?我的意思是使用相同的功能是 django 的 NumberInput 在输入旁边有箭头,可以增加或减少数字,它也接受 min_value 和 max_value。如果我使用 TextInput 小部件,我将无法获得此功能。如果我使用 NumberInput 小部件,它将不适用于浮点数:

homework = forms.FloatField(required=False, max_value=10, min_value=0, widget=NumberInput(attrs={'id': 'form_homework'}))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

当我单击 + - 按钮时,它不包括浮点数(即 5.5)。此外,如果我想将实际浮点数(作业成绩)设置为初始值(使用 Jquery),它根本不显示浮点数。

欢迎任何建议。

编辑:

如果我做:

class NumberInput(TextInput):
    input_type = 'number'

homework = forms.FloatField(required=False, max_value=10, min_value=0,
    widget=NumberInput(attrs={'id': 'form_homework', 'step': '0.1'}))
Run Code Online (Sandbox Code Playgroud)

'step' 属性有效,但 max_value/min_value 无效。如果我不以这种方式定义 NumberInput 并使用常规的 NumberInput,则它根本不起作用。

forms django floating-point django-widget

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

Django的。链select_related()

这是一个简单的问题:

是否有意义,或者是否可以select_related像这样链接查询?:

queryset = a.objects.filter(...).select_related("b").select_related("c")
Run Code Online (Sandbox Code Playgroud)

A具有B的ForeignKey,B具有C的ForeignKey。我的模型如下所示:

class A(models.Model):
 b = models.ForeignKey(B)

class B(models.Model):
 c = models.ForeignKey(C)
Run Code Online (Sandbox Code Playgroud)

django django-models django-queryset

7
推荐指数
1
解决办法
1322
查看次数

Django TemplateResponse vs render

有什么区别

return TemplateResponse(request, self.template_name, context=context)
Run Code Online (Sandbox Code Playgroud)

return render(request, self.template_name, context=context)
Run Code Online (Sandbox Code Playgroud)

是否有任何情况我应该使用其中一个而不是另一个?

django django-templates

7
推荐指数
1
解决办法
3927
查看次数

Django的.从queryset中删除对象

我需要做这样的事情:

quito = queryset.get(lugar="Quito")
queryset.pop(quito)
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

'QuerySet' object has no attribute 'pop'
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

django django-models

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

pip 找不到 django 3.x - 错误:找不到匹配的 django==3.0.4 发行版

当我运行时:

pip3 install django==3.0.5
Run Code Online (Sandbox Code Playgroud)

我收到错误

ERROR: Could not find a version that satisfies the requirement django==3.0.5 (from versions: 1.1.3, ... 2.2.11, 2.2.12) ERROR: No matching distribution found for django==3.0.4
Run Code Online (Sandbox Code Playgroud)

我需要在某处更新一些参考资料,但我不确定如何更新。请帮忙。

django django-3.0

7
推荐指数
1
解决办法
4539
查看次数

Heroku的.New Relic Procfile命令不起作用

我一直在尝试将New Relic添加到我的应用程序中,但是我收到此错误:

at=error code=H10 desc="App crashed"
Run Code Online (Sandbox Code Playgroud)

错误来自Procfile行,我声明了Web进程.我按照文件说明这里这里说明过程应该像这样声明:

web: newrelic-admin run-program python manage.py run_gunicorn -b "0.0.0.0:$PORT" -w 3
Run Code Online (Sandbox Code Playgroud)

它不起作用.

我应该如何在Procfile for New Relic中声明Web进程?

我正在使用Django.

python django heroku newrelic

6
推荐指数
1
解决办法
289
查看次数

Heroku的.Django dumpdata

如何在Heroku上获取数据并创建一个可以在本地加载的夹具?heroku run python manage.py dumpdata --natural > data.json是命令,但我该如何下载文件?

django heroku

6
推荐指数
1
解决办法
1216
查看次数