【发布时间】:2021-07-24 22:23:27
【问题描述】:
我正在尝试创建一个类似“http://127.0.0.1:8000/api/data/year”的 api。 但我做不到,无法在端点中动态显示年份。请检查 urls.py 第二个问题-我想在views.py中使requestYear成为动态的。
参考文件如下所述。请检查。
models.py
class DataModel(models.Model):
city = models.CharField(max_length=100)
date = models.DateField(editable=True)
serializers.py
class DataSerializer(serializers.ModelSerializer):
YearOfDate = serializers.SerializerMethodField()
class Meta:
model = DataModel
fields = ['id', 'city', 'date', 'YearOfDate']
def get_YearOfDate(self, obj):
return obj.date.year
views.py
class DataListView(generics.ListAPIView):
serializer_class = DataSerializer
model = DataModel
queryset = model.objects.all()
def get_queryset(self):
requestedYear = 2009
return DataModel.objects.filter(date__year=requestedYear)
urls.py
urlpatterns = [ path('admin/', admin.site.urls),
path('api/data/2009', views.DataListView.as_view()),
#re_path(r'^api/match/(?P<year>[0-9]{4})/$', views.DataListView.as_view()),]
【问题讨论】:
标签: django django-rest-framework django-views django-urls