在网站上,我试图根据用户的相对位置对商店列表进行排序.让我解释.
一家商店看起来像这样:
class Shop(models.Model):
latitude = models.DecimalField(max_digits=9, decimal_places=6)
longitude = models.DecimalField(max_digits=9, decimal_places=6)
Run Code Online (Sandbox Code Playgroud)
我在会话中获得用户的位置.
request.session['user_latitude']
request.session['user_longitude']
Run Code Online (Sandbox Code Playgroud)
所以现在我得到了一个商店列表,我想对它们进行排序.所以我尝试了这个:
def distance_of_the_shop(shop):
# compute the distance between the shop and the user and return it
return computed_distance
sorted(shop_list, key=distance_of_the_shop)
Run Code Online (Sandbox Code Playgroud)
问题很简单,如何将多个参数传递给方法distance_of_the_shop?
我想将图片字节包含在JSON中,但我遇到了编码问题:
import urllib
import json
data = urllib.urlopen('https://www.python.org/static/community_logos/python-logo-master-v3-TM-flattened.png').read()
json.dumps({'picture' : data})
Run Code Online (Sandbox Code Playgroud)
UnicodeDecodeError:'utf8'编解码器无法解码位置0的字节0x89:无效的起始字节
我不知道如何处理这个问题因为我处理图像,所以我对这个编码问题有点困惑.我正在使用python 2.7.有人能帮帮我吗?:)
一些代码而不是长解释:
我的主序列化器OrderSerializer和嵌套序列化器OffersSerializer:
class OffersSerializer(serializers.Serializer):
id = serializers.IntegerField(min_value=0)
quantity = serializers.IntegerField(min_value=0)
class OrderSerializer(serializers.Serializer):
offers = OffersSerializer(many=True, required=True)
Run Code Online (Sandbox Code Playgroud)
这样我就可以像这样发布数据:
{
"offers": []
}
Run Code Online (Sandbox Code Playgroud)
这对于 DRF 有效,但我想检查是否至少有一个报价,例如:
{
"offers": [{"id": 1, "quantity": 200}]
}
Run Code Online (Sandbox Code Playgroud)
如何确保至少有一份报价?
谢谢
我正在寻找 Django 在上传文件时用来生成唯一文件名的方法。
例如,如果我test.csv在同一目录中上传一个调用了两次的文件,则第一个文件将另存为test.csv,第二个文件将另存为test_2.csv. 我已经尝试找到 Django 如何管理它,但我只发现django.utils.text.get_valid_filename哪个可能有用,但这不是我正在寻找的......
我已经看到其他带有随机命名解决方案的 主题,这不是我在这里寻找的:)我真的很想了解 Django 如何管理这个问题。
我得到了两个由外键链接的 Django 模型:
class Author(models.Model):
...
class Book(models.Model):
author = models.ForeignKey(Author)
Run Code Online (Sandbox Code Playgroud)
请考虑下面的管理示例(我想做相反的事情):
from django.contrib import admin
from my_app.models import Author, Book
class BookInline(admin.TabularInline):
model = Book
class AuthorAdmin(admin.ModelAdmin):
inlines = [
BookInline,
]
admin.site.register(Author, AuthorAdmin)
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我们可以在管理中看到所有作者,以及每个作者的书。
现在,我想反过来。在管理中为每本书输入 en 条目,并在书籍详细信息中显示作者信息(可以是只读的)。我尝试了下面的解决方案,但显然它不起作用:
from django.contrib import admin
from my_app.models import Author, Book
class AuthorInline(admin.TabularInline):
model = Author
class BookAdmin(admin.ModelAdmin):
inlines = [
AuthorInline,
]
admin.site.register(Book, BookAdmin)
Run Code Online (Sandbox Code Playgroud)
Django 引发了一个错误:
<class 'my_app.admin.AuthorInline'>: (admin.E202) 'my_app.Author' has no ForeignKey to 'my_app.Book'.
你知道怎么做吗 ?
更多背景: