Итак, у меня есть этот набор URL-адресов ниже. И в наборе URL-адресов есть два URL-адреса, которые принимают параметры в URL-адрес и передают его в apiviw.
urlpatterns = [
url(r'^([0-9]{4})/([0-9]{1,2})/test/$', views.DuperView.as_view()),
url(r'^test/([0-9]{4})/([0-9]{2})/$', views.SuperView.as_view()),
url(r'^test/', views.TestView.as_view()),
]
Вот APIView, в который все передается.
class DuperView(APIView):
queryset = models.DuperModel.dupers.duperdeduper()
def get(self, request, year, month, format=None):
an_apiview = [
year,
month,
]
return Response({'http_method': 'GET', 'api_view': an_apiview})
первый параметр, определенный в URL-адресе как ([0-9]{4}), передается в метод get как год, а второй, определенный как ([0-9]{1,2}), передается как месяц.
Вот моя модель, менеджер моделей и набор запросов модели для модели, которой все это соответствует.
class DuperQuerySet(models.QuerySet):
def duperdeduper(self):
return self.filter(year='2000')
class DuperModelManager(models.Manager):
def get_queryset(self):
return DuperQuerySet(self.model, using=self._db)
def duperdeduper(self):
return self.get_queryset().authors()
class DuperModel(models.Model):
year = models.ForeignKey(YearModel)
month = models.ForeignKey(MonthModel)
name = models.CharField(max_length=255)
dupers = DuperModelManager()
Мне было интересно, есть ли способ каким-то образом передать параметры года и месяца в модель, чтобы я мог использовать их при обработке данных в моделях?
SELECT * FROM dupertable, yeartable WHERE year='variablevaluepassedon'
Возможен ли такой функционал? Я знаю, что могу использовать метод .filter() в своем наборе запросов, но моя проблема заключается в том, чтобы получить переменную в наборе запросов, чтобы этот запрос работал.
get_queryset
в представлении; это то, что вы имели ввиду? - person Daniel Roseman   schedule 22.06.2017DuperModel.dupers.filter(month=self.kwargs['month], year=self.kwargs['year'])
? О каких еще моделях вы говорите? - person Daniel Roseman   schedule 22.06.2017