Django는 admin에서 xadmin으로 전환하여 구덩이를 메운다
1、python 3.7.0
2、django 2.2.1
질문 1: IndexError at/xadmin/dbmodel/user/10019678227105/update/
list index out of range
해결 방법:
1、수정/xadmin/widgets.py 파일,render () 방법의 반환 값을 수정합니다.78 - 81 행에 주석을 달고 새 반환을 추가합니다.
def render(self, name, value, attrs=None):
if DJANGO_11:
input_html = [ht for ht in super(AdminSplitDateTime, self).render(name, value, attrs).replace(
'/>
%s'
# ''
# ''
# '%s
' % (input_html[0], _(u'Today'), input_html[1], _(u'Now')))return input_html[0] # 새 반환 추가
else:
return super(AdminSplitDateTime, self).render(name, value, attrs)
질문2: ImportError: cannot import name'javascriptcatalog' from 'django.views.i18n'
해결 방법:
1、settings를 수정합니다.py 파일의 INSTALLEDAPPS 항목, django. 추가conf.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# xadmin
'xadmin',
'crispy_forms',
'reversion',
'django.conf', #
'db_model',
'rest_framework',
'api',
]
2. 수정/xadmin/sites.py 파일, 355 - 358 행에 주석을 달고 JavaScriptCatalog 클래스를 가져와 수정 사항을 되돌려줍니다.
def i18n_javascript(self, request):
"""
Displays the i18n JavaScript that the Django admin requires.
This takes into account the USE_I18N setting. If it's set to False, the
generated JavaScript will be leaner and faster.
"""
# if settings.USE_I18N:
# from django.views.i18n import javascript_catalog
# else:
# from django.views.i18n import null_javascript_catalog as javascript_catalog
from django.views.i18n import JavaScriptCatalog
return JavaScriptCatalog().get(request=request, **{'packages': 'django.conf+xadmin'})
질문 3: AttributeError at/xadmin/dbmodel/user/10019678227105/update/
'XxxxField' object has no attribute 'rel'
해결 방법:
1、오류가 대응하는 곳의rel 필드를remote 로 변경합니다field(예:
# if isinstance(f.rel, models.ManyToOneRel):
if isinstance(f.remote_field, models.ManyToOneRel):
질문 4: ModuleNotFoundError: No module named'django.core.urlresolvers'
해결 방법: 모든 도입django. 수정core.urlresolvers 패키지의 파일은 다음과 같이 수정되었습니다.
#from django.core.urlresolvers import reverse
from django.urls import reverse
참고: NoReverseMatch 클래스를 참조하는 부분도 다음과 같이 수정해야 합니다.
#from django.core.urlresolvers import NoReverseMatch
from django.urls import NoReverseMatch
질문 5: TypeError:init__() missing 1 required positional argument: 'on_delete'
해결 방법: 모델 수정.py에 틀린 곳 다 추가ondelete=CASCADE 및 해당 패키지 가져오기:from django.db.models import CASCADE:
# user = models.ForeignKey(AUTH_USER_MODEL, verbose_name=_(u"user"), blank=True, null=True)
# on_delete=CASCADE
user = models.ForeignKey(AUTH_USER_MODEL, verbose_name=_(u"user"), blank=True, null=True,on_delete=CASCADE)
질문6: TypeError:init__() takes 1 positional argument but 6 were given
해결 방법: 버그 파일\xadmin\views\dashboard를 엽니다.py 제284-285 행은 다음과 같이 수정되었습니다.
# forms.Field.__init__(self, required, widget, label, initial, help_text,
# *args, **kwargs)
forms.Field.__init__(self)
질문 7: ImportError: cannot import name'login'from'django.contrib.auth.views'
해결 방법: 오류 보고 위치에서 가져온 패키지를 다음과 같이 수정합니다.
# from django.contrib.auth.views import login
# from django.contrib.auth.views import logout
from django.contrib.auth import login,logout
질문 8: ImportError: cannot import name'QUERYTERMS' from 'django.db.models.sql.query'
해결 방법: 오류 보고 위치에서 가져온 패키지를 다음과 같이 수정합니다.
# from django.db.models.sql.query import LOOKUP_SEP, QUERY_TERMS
from django.db.models.sql.query import LOOKUP_SEP, Query
질문 9: ImportError: cannot import name'passwordreset_confirm' from 'django.contrib.auth.views'
해결 방법: 버그 파일 수정\xadmin\plugins\passwords.py에서 가져온 패키지는 다음과 같이 수정되었습니다.
# from django.contrib.auth.views import password_reset_confirm
from django.contrib.auth.views import PasswordResetConfirmView
그리고 사용된 위치의 78 - 83 줄을 다음과 같이 수정합니다.
def do_view(self, request, uidb36, token, *args, **kwargs):
context = super(ResetPasswordComfirmView, self).get_context()
# return password_reset_confirm(request, uidb36, token,
# template_name=self.password_reset_confirm_template,
# token_generator=self.password_reset_token_generator,
# set_password_form=self.password_reset_set_form,
# post_reset_redirect=self.get_admin_url('xadmin_password_reset_complete'),
# current_app=self.admin_site.name, extra_context=context)
return PasswordResetConfirmView(request, uidb36, token,
template_name=self.password_reset_confirm_template,
token_generator=self.password_reset_token_generator,
set_password_form=self.password_reset_set_form,
post_reset_redirect=self.get_admin_url('xadmin_password_reset_complete'),
current_app=self.admin_site.name, extra_context=context)
질문10: AttributeError:'Settings'object has no attribute'MIDDLEWARECLASSES'
해결 방법: admin\plugins\language를 수정합니다.py 24 행은 다음과 같이 수정되었습니다.
# if settings.LANGUAGES and 'django.middleware.locale.LocaleMiddleware' in settings.MIDDLEWARE_CLASSES:
if settings.LANGUAGES and 'django.middleware.locale.LocaleMiddleware' in settings.MIDDLEWARE:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.