DRF路由器名称空间问题

时间:2018-10-23 20:14:59

标签: python django django-rest-framework

我很难过要使用反向功能来实现我的DRF实现。这是我的urls.py,我将假设使用以下反向操作:

urls.py

 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.arahasya.sap.forwardkey/com.arahasya.sap.forwardkey.MainActivity}: android.view.InflateException: Binary XML file line #27: Binary XML file line #27: Error inflating class TextView
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2984)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3045)
    at android.app.ActivityThread.-wrap14(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1642)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6776)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
 Caused by: android.view.InflateException: Binary XML file line #27: Binary XML file line #27: Error inflating class TextView
 Caused by: android.view.InflateException: Binary XML file line #27: Error inflating class TextView
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.support.v7.widget.bk.d()' on a null object reference
    at android.support.v7.widget.bm.onTextChanged(Unknown Source)
    at android.widget.TextView.setText(TextView.java:5133)
    at android.widget.TextView.setText(TextView.java:4954)
    at android.widget.TextView.<init>(TextView.java:1825)
    at android.widget.TextView.<init>(TextView.java:1035)
    at android.support.v7.widget.bm.<init>(Unknown Source)
    at android.support.v7.widget.bm.<init>(Unknown Source)
    at android.support.v7.app.AppCompatViewInflater.a(Unknown Source)
    at android.support.v7.app.r.a(Unknown Source)
    at android.support.v7.app.r.onCreateView(Unknown Source)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:776)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:734)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:865)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:525)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:427)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:378)
    at android.support.v7.app.r.b(Unknown Source)
    at android.support.v7.app.o.setContentView(Unknown Source)
    at com.arahasya.sap.forwardkey.MainActivity.onCreate(Unknown Source)
    at android.app.Activity.performCreate(Activity.java:6955)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2927)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3045)
    at android.app.ActivityThread.-wrap14(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1642)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6776)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
2018-10-24 01:25:52.356 4679-24128/? E/NetworkScheduler: Invalid component specified.

然后

from django.conf.urls import url, include
from rest_framework import routers
from . import views
router = routers.DefaultRouter()
router.register(r'compressors', views.CompressorViewSet, base_name='compressors')
from django.urls import include, path
# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
    url(r'^', include(router.urls, namespace='router')),
    url(r'^api-auth/', include('rest_framework.urls', 
namespace='rest_framework'))
]

我想念什么?我收到未提供的app_name,将其添加到此文件后无济于事。有没有办法将app_name放入路由器?

1 个答案:

答案 0 :(得分:0)

结果很难找到确切的使用基名的方法,我没有在反向添加“ -list”。应该是以下内容,希望对其他人有所帮助:

reverse('router:compressors-list')