I got this wired issue. who can help.
Python 3.6
Django Latest 2.0.2
------------following are stack trace---------------
Internal Server Error: /admin/nmm_tokenservice/userprofile/add/
Traceback (most recent call last):
File "C:\Python36\lib\site-packages\django\core\handlers\exception.py", line 35, in inner
response = get_response(request)
File "C:\Python36\lib\site-packages\django\core\handlers\base.py", line 128, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Python36\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Python36\lib\site-packages\django\contrib\admin\options.py", line 574, in wrapper
return self.admin_site.admin_view(view)(*args, **kwargs)
File "C:\Python36\lib\site-packages\django\utils\decorators.py", line 142, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "C:\Python36\lib\site-packages\django\views\decorators\cache.py", line 44, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "C:\Python36\lib\site-packages\django\contrib\admin\sites.py", line 223, in inner
return view(request, *args, **kwargs)
File "C:\Python36\lib\site-packages\django\contrib\admin\options.py", line 1553, in add_view
return self.changeform_view(request, None, form_url, extra_context)
File "C:\Python36\lib\site-packages\django\utils\decorators.py", line 62, in _wrapper
return bound_func(*args, **kwargs)
File "C:\Python36\lib\site-packages\django\utils\decorators.py", line 142, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "C:\Python36\lib\site-packages\django\utils\decorators.py", line 58, in bound_func
return func.__get__(self, type(self))(*args2, **kwargs2)
File "C:\Python36\lib\site-packages\django\contrib\admin\options.py", line 1450, in changeform_view
return self._changeform_view(request, object_id, form_url, extra_context)
File "C:\Python36\lib\site-packages\django\contrib\admin\options.py", line 1495, in _changeform_view
return self.response_add(request, new_object)
File "C:\Python36\lib\site-packages\django\contrib\admin\options.py", line 1098, in response_add
current_app=self.admin_site.name,
File "C:\Python36\lib\site-packages\django\urls\base.py", line 88, in reverse
return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "C:\Python36\lib\site-packages\django\urls\resolvers.py", line 632, in _reverse_with_prefix
raise NoReverseMatch(msg)
django.urls.exceptions.NoReverseMatch: Reverse for 'nmm_tokenservice_userprofile_change' with arguments '('',)' not found. 1 pattern(s) tried: ['admin/nmm_tokenservice\\/userprofile\\/(?P<object_id>.+)\\/change\\/$']
---------------- here is my model-------------------
class UserProfile(models.Model):
#base information
user = models.OneToOneField(User, on_delete=models.deletion.CASCADE, verbose_name='系统账户', related_name='profile')
uid = UIDField(verbose_name='用户ID', primary_key=True, editable=False, null=False, blank=False)
imuid = UIDField(verbose_name='IM用户ID', editable=False, null=True, blank=True)
nickname = models.CharField(verbose_name='昵称', max_length=20, null=True, blank=True, db_index=True)
tel = models.CharField(verbose_name='手机号码', max_length=20, null=True, blank=False)
#status and level
status = models.CharField(verbose_name='状态', max_length=20, null=False, blank=False, default=USER_STATUS[0][0], choices=USER_STATUS)
level = models.PositiveIntegerField(verbose_name='级别', null=False, blank=False, default=1, db_index=True)
#org information
city = CityCodeField(verbose_name='城市', null=True, blank=False)
org = CodeField(verbose_name='学校或组织机构代码', null=True, blank=True, db_index=True)
textbookcode = LabelCodeField(verbose_name='教材(标签代码)', help_text='请填写标签代码', null=True, blank=True, db_index=True)
gradecode = LabelCodeField(verbose_name='年级/级别(标签代码)', help_text='请填写标签代码', null=True, blank=True, db_index=True)
#role
role = UserRoleField(
verbose_name=
'角色',
null=
False,
blank=
False,
choices=UserRole_CHOICES,
default=
UserRole.user.name)
### teacher specific attributes ###
synopsis = models.TextField(verbose_name='个人简介', max_length=500, null=True, blank=True)
workhistory = models.TextField(verbose_name='工作经历', max_length=500, null=True, blank=True)
cert = models.TextField(verbose_name='荣誉证书', max_length=500, null=True, blank=True)
labels = models.CharField(verbose_name='个人标签', max_length=100, null=True, blank=True)
scope = models.CharField(verbose_name='出题范围', help_text='老师的出题范围,仅对老师角色有效', max_length=100, null=True, blank=True)
title = models.PositiveIntegerField(verbose_name='头衔级别', null=False, blank=False, default=1, db_index=True)
### promotion and relation ###
promotioncode = PromotionCodeField(verbose_name='推荐码', help_text='用于推荐其他用户或者老师', null=True, blank=True)
broker_promote = UIDField(verbose_name='推荐者用户ID', null=True, blank=True, db_index=True)
broker_firstserve = UIDField(verbose_name='首服老师用户ID', null=True, blank=True, db_index=True)
class Meta:
verbose_name = '用户信息'
verbose_name_plural = '用户信息'
-----------here is the admin class---------------
class UserProfileAdmin(admin.ModelAdmin):
# list page
list_display = ('date_joined', 'uid', 'user', 'tel', 'imuid', 'nickname', 'role', 'city', 'level', 'title', 'status', 'promotioncode', 'broker_promote', 'broker_firstserve', )
list_display_links = ('uid', )
ordering = ('uid', )
search_fields = [
'=uid',
'=tel',
'nickname',
'user__username',
]
list_filter = ('role', 'city', 'level', 'title', 'status', )
def date_joined(self, obj):
return obj.user.date_joined
date_joined.admin_order_field = 'user__date_joined'
date_joined.short_description = '注册日期'
def save_model(self, request, obj, form, change):
if not obj.broker_promote:
obj.broker_promote = None
if not obj.broker_firstserve:
obj.broker_firstserve = None
super(UserProfileAdmin, self).save_model(request, obj, form, change)