我现在正面临Django Rest Framework的一个小问题.我正在尝试发布一个嵌套对象的对象.
这是我的serializers.py
:
class ClassSerializer(serializers.ModelSerializer):
class Meta:
model = Class
fields = ('number', 'letter')
class SubjectSerializer(serializers.ModelSerializer):
class Meta:
model = Subject
fields = ('title',)
class ExamSerializer(serializers.ModelSerializer):
subject = SubjectSerializer()
clazz = ClassSerializer()
class Meta:
model = Exam
fields = ('id', 'subject', 'clazz', 'topic', 'date', 'details')
depth = 1
def create(self, validated_data):
return Exam.objects.create(**validated_data)
def update(self, instance, validated_data):
instance.__dict__.update(**validated_data)
instance.save()
return instance
Run Code Online (Sandbox Code Playgroud)
而create()
来自views.py
:
def create(self, request):
serializer = self.serializer_class(data=request.data)
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
return …
Run Code Online (Sandbox Code Playgroud) 如何在模板中设置who
和的值?image
class CommentForm(ModelForm):
who = forms.CharField(widget=forms.HiddenInput())
image = forms.ImageField(widget=forms.HiddenInput())
class Meta:
model = Comments
fields = ['who', 'image', 'content']
Run Code Online (Sandbox Code Playgroud)
它不起作用(原始文本):
<form method='POST' action=''>
{% csrf_token %}
{% render_field comment_form.content class="form-control form-control-sm" placeholder='Comment..' %}
{% render_field comment_form.who class="form-control form-control-sm" value='{{ request.user.profile.pk }}' %}
{% render_field comment_form.image class="form-control form-control-sm" value='{{ image.pk }}' %}
<input class="btn btn-primary btn-sm" type="submit" value="Add comment">
</form>
Run Code Online (Sandbox Code Playgroud)
我的views.py
:
class ProfileView(DetailView):
comment_form = CommentForm()
queryset = Profile.objects.all()
context_object_name = 'me'
template_name = 'profile.html'
def …
Run Code Online (Sandbox Code Playgroud) 我正在寻找从 OpenWeatherMaps http://bulk.openweathermap.org/sample/city.list.json.gz下载的 json 文件 city.list.json 创建位置的 python3 列表。该文件通过http://json-validator.com/,但我无法弄清楚如何正确打开文件并创建键“名称”的值列表。我不断遇到json.loads
关于io.TextIOWrapper
等的错误。
我创建了一个简短的测试文件
[
{
"id": 707860,
"name": "Hurzuf",
"country": "UA",
"coord": {
"lon": 34.283333,
"lat": 44.549999
}
}
,
{
"id": 519188,
"name": "Novinki",
"country": "RU",
"coord": {
"lon": 37.666668,
"lat": 55.683334
}
}
]
Run Code Online (Sandbox Code Playgroud)
有没有办法解析这个并创建一个列表["Hurzuf", "Novinki"]
?
请帮助我了解如何制作删除按钮,它必须删除一个 Cat
class Cat(models.Model):
class Meta():
db_table = "cat"
paw = models.IntegerField(default=4)
name = models.CharField(max_length=30, null=False, default='Cat')
age = models.IntegerField(default=False, null=False)
species = models.CharField(max_length=50, blank=True)
hairiness = models.IntegerField(default=False, null=False)
def __str__(self):
return self.name
Run Code Online (Sandbox Code Playgroud)
这是我的views.py
,希望能对您有所帮助。(星期一需要我进行面试)
from django.shortcuts import render, get_object_or_404
from .models import Cat
from .forms import CatForm
from django.shortcuts import redirect
def home(request):
template = "base.html"
queryset = Cat.objects.all()
context = {
"object_list": queryset
}
return render(request, template, context)
def new_cat(request):
if request.method == "POST":
form = CatForm(request.POST) …
Run Code Online (Sandbox Code Playgroud)