如何创建“仅创建”视图?我只想允许用户创建一个对象,什么也没有。
我当前的代码如下:
echo <script language="javascript"> alert("array (\n 'SIS' => \n array (\n 'MEMORYUSAGE' => \n array (\n 'STANDBY' => '1.01',\n 'STANDBYTXT' => '1.01 Mb',\n 'LASTRUN' => '1.01',\n 'RUNNING' => 0.0,\n 'RUNNINGTXT' => '0 Mb',\n ),\n 'EXECTIMEUSAGE' => \n array (\n 'STANDBY' => -1547742337.322018,\n 'LASTRUN' => 0.0007879734039306641,\n 'RUNNINGTXT' => 'Menos de 1 Seg',\n ),\n ),\n)\narray (\n 'SES_START' => true,\n 'SES_TIMEOUT' => 1547767410,\n 'SES_ACTIVITY' => 1547745937,\n 'SES_LANG' => 'es_ES',\n 'HOME' => 2,\n)\n") </script>
这很好。但是我在模型中有一个ForeignKey,在Web视图中,每个用户都可以看到所有ID。 (在REST Web界面中为ForeignKey选择输入)
如何停止这种行为?
谢谢
答案 0 :(得分:1)
默认情况下,相关字段(PrimaryKeyRelatedField
,SlugRelatedField
等)使用默认的 HTML选择呈现。选中此snippet。
Django REST框架允许您通过使用style
关键字参数(选中此doc)来更改序列化器字段的呈现样式。
如果您不希望API在选择中显示现有对象的ID,请更改序列化器字段的style
参数,将呈现样式设置为简单的 HTML输入 。像这样:
class BookingRequestSerializer(serializers.ModelSerializer):
...
related_field = PrimaryKeyRelatedField(
queryset=RelatedModel.objects.all(),
style={'base_template': 'input.html'},
)