Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django Rest Framework视图集出现404错误_Python_Django_Django Rest Framework_Django Urls - Fatal编程技术网

Python Django Rest Framework视图集出现404错误

Python Django Rest Framework视图集出现404错误,python,django,django-rest-framework,django-urls,Python,Django,Django Rest Framework,Django Urls,我还是Django Rest框架的新手,我想使用URL参数过滤queryset 这是我的型号。py: class Offre(models.Model): title = models.CharField(max_length=100, blank=True, default=0) secteur = models.CharField(max_length=50, null=True) idRecruteur = models.ForeignKey(R

我还是Django Rest框架的新手,我想使用URL参数过滤queryset

这是我的型号。py

class Offre(models.Model):          
    title = models.CharField(max_length=100, blank=True, default=0)
    secteur = models.CharField(max_length=50, null=True)
    idRecruteur = models.ForeignKey(Recruteur,verbose_name = "idRecruteur", on_delete=models.CASCADE, default=None)
    def __str__(self):
        return "Offre: {}".format(self.title)   
router = DefaultRouter();
router.register(r'OffresByRecruteur/(?P<idRecruteur_id>\d+)/$', OffreRecruteurViewSet, base_name='inoutreports')
urlpatterns = router.urls
class OffreRecruteurViewSet(ModelViewSet):
    queryset = Offre.objects.all()
    serializer_class = OffreSerializer

    def get_queryset(self, *args, **kwargs):
        return self.queryset.filter(idRecruteur_id=self.request.GET.get('idRecruteur_id'))
以下是我在url.py中所做的操作:

class Offre(models.Model):          
    title = models.CharField(max_length=100, blank=True, default=0)
    secteur = models.CharField(max_length=50, null=True)
    idRecruteur = models.ForeignKey(Recruteur,verbose_name = "idRecruteur", on_delete=models.CASCADE, default=None)
    def __str__(self):
        return "Offre: {}".format(self.title)   
router = DefaultRouter();
router.register(r'OffresByRecruteur/(?P<idRecruteur_id>\d+)/$', OffreRecruteurViewSet, base_name='inoutreports')
urlpatterns = router.urls
class OffreRecruteurViewSet(ModelViewSet):
    queryset = Offre.objects.all()
    serializer_class = OffreSerializer

    def get_queryset(self, *args, **kwargs):
        return self.queryset.filter(idRecruteur_id=self.request.GET.get('idRecruteur_id'))
这就产生了

Using the URLconf defined in djangular.urls, Django tried these URL patterns, in this order: 
   ^scrumboard/ ^OffresByRecruteur/(?P<idRecruteur_id>\d+)/$/$ [name='inoutreports-list']
   ^scrumboard/ ^OffresByRecruteur/(?P<idRecruteur_id>\d+)/$\.(?P<format>[a-z0-9]+)/?$ [name='inoutreports-list']
   ^scrumboard/ ^OffresByRecruteur/(?P<idRecruteur_id>\d+)/$/(?P<idRecruteur>[^/.]+)/$ [name='inoutreports-detail']
   ^scrumboard/ ^OffresByRecruteur/(?P<idRecruteur_id>\d+)/$/(?P<idRecruteur>[^/.]+)\.(?P<format>[a-z0-9]+)/?$ [name='inoutreports-detail']
The current path, scrumboard/OffresByRecruteur/1/, didn't match any of these.
Django使用djangular.URL中定义的URLconf,按以下顺序尝试了这些URL模式:
^scrumboard/^OffresByRecruteur/(?P\d+)/$/$/$[name='inoutreports-list']
^scrumboard/^OffresByRecruteur/(?P\d+)/$\(?P[a-z0-9]+)/?$[name='inoutreports-list']
^scrumboard/^OffresByRecruteur/(?P\d+)/$/(?P[^/]+)/$[name='inoutreports-detail']
^scrumboard/^OffresByRecruteur/(?P\d+)/$/(?P[^/]+)\(?P[a-z0-9]+)/?$[name='inoutreports-detail']
当前路径scrumboard/OffresByRecruteur/1/与这些路径都不匹配。

我做错了什么?

用于注册视图集的正则表达式不应以
/$
结尾。默认情况下,Rest框架将使用美元,您不需要美元,因为它与字符串的结尾匹配

router.register(r'OffresByRecruteur/(?P<idRecruteur_id>\d+)/', OffreRecruteurViewSet, base_name='inoutreports')