我有型号产品:
def productFile(instance, filename):
return '/'.join( ['products', str(instance.id), filename] )
class Product(models.Model):
...
image = models.ImageField(
upload_to=productFile,
max_length=254, blank=True, null=True
)
...
Run Code Online (Sandbox Code Playgroud)
然后我有序列化器:
class ProductSerializer(serializers.ModelSerializer):
class Meta:
model = Product
fields = (
...
'image',
...
)
Run Code Online (Sandbox Code Playgroud)
然后我有意见:
class ProductViewSet(BaseViewSet, viewsets.ModelViewSet):
queryset = Product.objects.all()
serializer_class = ProductSerializer
Run Code Online (Sandbox Code Playgroud)
如何使用Postman上传图片?将图像上传到模型的最佳做法是什么?谢谢.
我正在使用Django REST框架和djangorestframework-csv以及默认的分页设置,但是当请求的格式为"CSV"时,就没有必要使用paginaion.可以禁用分页:
pagination_class = None
有可能动态地改变它吗?
class ObjectViewSet(BaseViewSet, viewsets.ModelViewSet):
queryset = Object.objects.none()
serializer_class = ObjectSerializer
pagination_class = None # if format is "CSV"
# pagination_class = None # if fromat isn't "CSV"
Run Code Online (Sandbox Code Playgroud)
谢谢.
我有一个不同位置的图表:
import networkx as nx
G = nx.Graph()
for edge in Edge.objects.all():
G.add_edge(edge.from_location, edge.to_location, weight=edge.distance)
Run Code Online (Sandbox Code Playgroud)
位置(节点)有不同的类型(厕所,建筑物入口等)我需要找到从某个给定位置到特定类型的任何位置的最短路径.(例如:从给定节点查找最近的入口.)
Networkx
库中是否有一些方法可以解决没有循环的问题?就像是:
nx.shortest_path(
G,
source=start_location,
target=[first_location, second_location],
weight='weight'
)
Run Code Online (Sandbox Code Playgroud)
如果两个位置属于同一类型,则结果将是first_location或second_location的最短路径.
是否有一些方法也返回路径长度?
如何在 Django REST Framework 中对日期和数字进行范围过滤?其他过滤器(lt、gt 等)工作正常。我尝试了许多变体,例如:
import rest_framework_filters as filters
class OrderFilter(filters.FilterSet):
total_price__range = filters.RangeFilter(name='total_price')
created_at__range = filters.DateFromToRangeFilter(name='created_at')
....
class Meta:
model = Order
fields = {
'created_at__range': ['__all__'],
'total_price__range': ['__all__'],
...
}
class OrderViewSet(BaseViewSet, viewsets.ModelViewSet):
filter_class = OrderFilter
....
Run Code Online (Sandbox Code Playgroud)
在可浏览的 api 中,当我点击底部的“过滤器”时有一些字段,然后 url 看起来像:
/orders/?created_at__range_0=2017-05-22&created_at__range_1=2017-05-22
Run Code Online (Sandbox Code Playgroud)
它不起作用。我需要类似的东西
/orders/?created_at__range=2017-05-22,2017-05-24
Run Code Online (Sandbox Code Playgroud)
与整数相同:
/orders/?total_price__range=1000,2000
Run Code Online (Sandbox Code Playgroud)
它被描述为here。
我究竟做错了什么?
我有一个模型:
class Motocycle(models.Model):
title = models.CharField(max_length=50, blank=True, default='')
engine_displacement = models.IntegerField(default=0)
Run Code Online (Sandbox Code Playgroud)
我想:
queryset = Motocycle.objects.annotate(
full_name=Concat(
'title',
Value(' '),
F('engine_displacement'),
Value('')
),
).all()
Run Code Online (Sandbox Code Playgroud)
但是出现错误Expression contains mixed types. You must set output_field
::
queryset = Motocycle.objects.annotate(
full_name=Concat(
'title',
Value(' '),
F('engine_displacement'),
Value(''),
),
output_field=CharField(),
).all()
Run Code Online (Sandbox Code Playgroud)
我试图设置这个output_field
,结果是:'CharField' object has no attribute 'resolve_expression'
。
我做错了什么?谢谢你。
我将DRF与django-rest-framework-filters一起使用。
模型是:具有许多OrderItems的订单。任务是创建过滤器,该过滤器使您能够按订单项计数或按计数排序搜索订单。
在我的view.py中:
class OrderFilter(filters.FilterSet):
order_items_count = filters.NumberFilter(name="order_items__count")
customer = filters.RelatedFilter(
CustomerFilter,
name='customer',
queryset=Customer.objects.all(),
)
class Meta:
model = Order
fields = {
'internal_code': ['icontains'],
'notes': ['icontains'],
'status': ['exact'],
'complete': ['exact'],
'order_items_count': ['exact']
}
class OrderViewSet(BaseViewSet, viewsets.ModelViewSet):
queryset = Order.objects.all()
serializer_class = OrderSerializer
filter_class = OrderFilter
filter_backends = (
OrderingFilter,
DjangoFilterBackend,
)
ordering_fields = (
'internal_code',
'notes',
'status',
'complete',
'customer__title',
'order_items__count',
)
Run Code Online (Sandbox Code Playgroud)
应要求/orders?order_items_count=2
我得到了错误:相关字段具有无效的查找:计数
如何为模型的子代数创建自定义过滤器?谢谢。
PS这是我对stackowerflow的第一个问题,对不起样式错误。
django ×5
annotate ×1
csv ×1
filter ×1
graph ×1
image-upload ×1
networkx ×1
pagination ×1
python ×1
range ×1