gpt4 book ai didi

python - Python Django ValueError的int()无效文字,基数为10:“telba.de_001”

转载 作者:行者123 更新时间:2023-12-01 07:09:42 27 4
gpt4 key购买 nike

我试图从根本上复制3种不同的已经在运行的基于类的View的行为,但是却收到此错误,但我不明白为什么。
问题类/模型位于“ exten_int”区域。

楷模:

class context(models.Model):
"""Model representing a context. (for example telba.de)"""
CONTEXT = models.CharField('Kontext', primary_key=True, unique=True, max_length=200, help_text='')
COUNTRYPREFIX = models.IntegerField('Ländervorwahl', help_text='')
CITYPREFIX = models.IntegerField('Ortsvorwahl', help_text='')
ROOTNUMBER = models.IntegerField('Nummer')
EXTENSIONSFROM = models.IntegerField('Nebenstellen von')
EXTENSIONSTILL = models.IntegerField('Nebenstellen bis')
PORTSCOUNT = models.IntegerField('Anzahl erlaubter Nebenstelen')
CALLPERMISSIONS_CHOICES = (
(u'0', u'WorldWide'),
(u'1', u'Europe'),
(u'2', u'National'),
(u'3', u'None'),
)
CALLPERMISSIONS = models.CharField('Anrufberechtigungen', max_length=1, choices=CALLPERMISSIONS_CHOICES, help_text='')

def __str__(self):
"""String for representing the Model object context."""
return self.CONTEXT

def get_absolute_url(self):
"""Model representing a context."""
return reverse('context-detail', args=[str(self.CONTEXT)])


class sipuser(models.Model):
"""Model representing a SIPUser. (for example telba.de_525)"""
SIPUSER = models.CharField('SIP-Nutzername', primary_key=True, unique=True, max_length=200, help_text='')
CONTEXT = models.ForeignKey('context', verbose_name='Kontext', max_length=200, on_delete=models.SET_NULL, null=True)
SIPPASSWD = models.CharField('SIP-Password', max_length=200, help_text='')
NAME = models.CharField('Name', max_length=200, help_text='')
NST = models.IntegerField('Nebenstelle', help_text='')
EXTSIGNALNUMBER = models.IntegerField('Externe Anzeigenummer', help_text='')
CALLERID = models.CharField('CallerID', max_length=200, help_text='')

def __str__(self):
"""String for representing the Model object sipuser."""
return self.SIPUSER

def get_absolute_url(self):
"""Model representing a SIPUser."""
return reverse('sipuser-detail', args=[str(self.SIPUSER)])


class exten_ext(models.Model):
"""Model representing external Routing z.b. 4921190096525 => context telba.de nst 525"""
EXTEN_EXT = models.IntegerField('Eingehende Nummer geht auf', primary_key=True, unique=True, help_text='')
CONTEXT = models.ForeignKey('context', verbose_name='Kontext', max_length=200, on_delete=models.SET_NULL, null=True, help_text='')
EXTEN_INT = models.ForeignKey('sipuser', on_delete=models.SET_NULL, null=True, help_text='')
TRUNKID_CHOICES = (
(u'1', u'1'),
(u'9', u'9'),
(u'11', u'11'),
(u'12', u'12'),
(u'13', u'13'),
(u'14', u'14'),
(u'15', u'15'),
(u'16', u'16'),
(u'18', u'18'),
(u'19', u'19'),
(u'20', u'20'),
(u'21', u'21'),
(u'22', u'22'),
)
TRUNKID = models.CharField('TrunkID', max_length=200, choices=TRUNKID_CHOICES, help_text='')

def __str__(self):
"""String for representing the Model object for external Routing."""
return str(self.EXTEN_EXT)

def get_absolute_url(self):
"""Model representing external Routing z.b. 4921190096525 => context telba.de nst 525"""
return reverse('exten_ext-detail', args=[str(self.EXTEN_EXT)])


class exten_int(models.Model):
"""Model representing a Function z.b.context telba.de, nst 525 => exten_type, exten_attributes (like Voicemail, Fax2Mail ect.)"""
CONTEXT = models.ForeignKey('context', verbose_name='Kontext', max_length=200, on_delete=models.SET_NULL, null=True)
EXTEN_INT = models.ForeignKey('sipuser', on_delete=models.SET_NULL, null=True, help_text='')
EXTEN_TYPE = models.IntegerField('Funktion', default=10, help_text='')
EXTEN_ATTRIBUTES = models.CharField('Attribute', max_length=200, help_text='', default="call-00")

def __str__(self):
"""String for representing the Model object Function."""
return str(self.EXTEN_INT)

def get_absolute_url(self):
"""Model representing a Function."""
return reverse('exten_int-detail', args=[str(self.EXTEN_INT)])


该模型的图片不是最新的,但可以提供对模型的基本了解。

enter image description here

为了完整性
网址:

urlpatterns = [
path('', views.index, name='index'),
path('context/', views.contextListView.as_view(), name='context'),
path('context/<str:pk>', views.contextDetailView.as_view(), name='context-detail'),

path('sipuser/', views.sipuserListView.as_view(), name='sipuser'),
path('sipuser/<str:pk>', views.sipuserDetailView.as_view(), name='sipuser-detail'),

path('exten_int/', views.exten_intListView.as_view(), name='exten_int'),
path('exten_int/<str:pk>', views.exten_intDetailView.as_view(), name='exten_int-detail'),

path('exten_ext/', views.exten_extListView.as_view(), name='exten_ext'),
path('exten_ext/<str:pk>', views.exten_extDetailView.as_view(), name='exten_ext-detail'),
]


现在实际有问题的视图类只有exten_intDetailView

观看次数:

class contextListView(generic.ListView):
model = context
paginate_by = 10

class Meta:
ordering = ['CONTEXT']

def get_queryset(self):
queryset = context.objects.all()
return queryset.order_by('CONTEXT')


class contextDetailView(generic.DetailView):
model = context
paginate_by = 10

class Meta:
ordering = ['CONTEXT']

def get_queryset(self):
queryset = context.objects.all()
return queryset.order_by('CONTEXT')


class sipuserListView(generic.ListView):
model = sipuser
paginate_by = 10

class Meta:
ordering = ['CONTEXT', 'SIPUSER']

def get_queryset(self):
queryset = sipuser.objects.all()
return queryset.order_by('CONTEXT', 'SIPUSER')


class sipuserDetailView(generic.DetailView):
model = sipuser
paginate_by = 10

class Meta:
ordering = ['CONTEXT', 'SIPUSER']

def get_queryset(self):
queryset = sipuser.objects.all()
return queryset.order_by('CONTEXT', 'SIPUSER')


class exten_intListView(generic.ListView):
model = exten_int
paginate_by = 10

class Meta:
ordering = ['CONTEXT', 'EXTEN_INT']

def get_queryset(self):
queryset = exten_int.objects.all()
return queryset.order_by('CONTEXT', 'EXTEN_INT')


class exten_intDetailView(generic.DetailView):
model = exten_int
paginate_by = 10

class Meta:
ordering = ['CONTEXT', 'EXTEN_INT']

def get_queryset(self):
queryset = exten_int.objects.all()
print(queryset)
return queryset.order_by('CONTEXT', 'EXTEN_INT')


class exten_extListView(generic.ListView):
model = exten_ext
paginate_by = 10

class Meta:
ordering = ['CONTEXT', 'EXTEN_EXT']

def get_queryset(self):
class contextListView(generic.ListView):
model = context
paginate_by = 10

class Meta:
ordering = ['CONTEXT']

def get_queryset(self):
queryset = context.objects.all()
return queryset.order_by('CONTEXT')


class contextDetailView(generic.DetailView):
model = context
paginate_by = 10

class Meta:
ordering = ['CONTEXT']

def get_queryset(self):
queryset = context.objects.all()
return queryset.order_by('CONTEXT')


class sipuserListView(generic.ListView):
model = sipuser
paginate_by = 10

class Meta:
ordering = ['CONTEXT', 'SIPUSER']

def get_queryset(self):
queryset = sipuser.objects.all()
return queryset.order_by('CONTEXT', 'SIPUSER')


class sipuserDetailView(generic.DetailView):
model = sipuser
paginate_by = 10

class Meta:
ordering = ['CONTEXT', 'SIPUSER']

def get_queryset(self):
queryset = sipuser.objects.all()
return queryset.order_by('CONTEXT', 'SIPUSER')


class exten_intListView(generic.ListView):
model = exten_int
paginate_by = 10

class Meta:
ordering = ['CONTEXT', 'EXTEN_INT']

def get_queryset(self):
queryset = exten_int.objects.all()
return queryset.order_by('CONTEXT', 'EXTEN_INT')


class exten_intDetailView(generic.DetailView):
model = exten_int
paginate_by = 10

class Meta:
ordering = ['CONTEXT', 'EXTEN_INT']

def get_queryset(self):
queryset = exten_int.objects.all()
print(queryset)
return queryset.order_by('CONTEXT', 'EXTEN_INT')


class exten_extListView(generic.ListView):
model = exten_ext
paginate_by = 10

class Meta:
ordering = ['CONTEXT', 'EXTEN_EXT']

def get_queryset(self):
queryset = exten_ext.objects.all()
return queryset.order_by('CONTEXT', 'EXTEN_EXT')


class exten_extDetailView(generic.DetailView):
model = exten_ext
paginate_by = 10

class Meta:
ordering = ['CONTEXT', 'EXTEN_EXT']

def get_queryset(self):
queryset = exten_ext.objects.all()
return queryset.order_by('CONTEXT', 'EXTEN_EXT')
queryset = exten_ext.objects.all()
return queryset.order_by('CONTEXT', 'EXTEN_EXT')


class exten_extDetailView(generic.DetailView):
model = exten_ext
paginate_by = 10

class Meta:
ordering = ['CONTEXT', 'EXTEN_EXT']

def get_queryset(self):
queryset = exten_ext.objects.all()
return queryset.order_by('CONTEXT', 'EXTEN_EXT')


我在“问题”区域中包含了一个print(queryset),因此您可以在控制台中看到正确的queryset输出,如您在此处看到的。
enter image description here

我不明白为什么这根本不起作用,并且Python / Django的Debugging输出根本没有帮助。我自己的文件中的Trace没问题,我什么也没有得到,而且错误 invalid literal for int() with base 10: 'telba.de_001'本身对我完全没有意义。

这是完整的Django调试日志。

Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/catalog/exten_int/telba.de_001

Django Version: 2.2.4
Python Version: 3.7.3
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'catalog']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback:

File "C:\Users\mvanthiel\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\exception.py" in inner
34. response = get_response(request)

File "C:\Users\mvanthiel\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\base.py" in _get_response
115. response = self.process_exception_by_middleware(e, request)

File "C:\Users\mvanthiel\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\base.py" in _get_response
113. response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "C:\Users\mvanthiel\AppData\Local\Programs\Python\Python37\lib\site-packages\django\views\generic\base.py" in view
71. return self.dispatch(request, *args, **kwargs)

File "C:\Users\mvanthiel\AppData\Local\Programs\Python\Python37\lib\site-packages\django\views\generic\base.py" in dispatch
97. return handler(request, *args, **kwargs)

File "C:\Users\mvanthiel\AppData\Local\Programs\Python\Python37\lib\site-packages\django\views\generic\detail.py" in get
106. self.object = self.get_object()

File "C:\Users\mvanthiel\AppData\Local\Programs\Python\Python37\lib\site-packages\django\views\generic\detail.py" in get_object
36. queryset = queryset.filter(pk=pk)

File "C:\Users\mvanthiel\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\query.py" in filter
892. return self._filter_or_exclude(False, *args, **kwargs)

File "C:\Users\mvanthiel\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\query.py" in _filter_or_exclude
910. clone.query.add_q(Q(*args, **kwargs))

File "C:\Users\mvanthiel\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\sql\query.py" in add_q
1290. clause, _ = self._add_q(q_object, self.used_aliases)

File "C:\Users\mvanthiel\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\sql\query.py" in _add_q
1318. split_subq=split_subq, simple_col=simple_col,

File "C:\Users\mvanthiel\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\sql\query.py" in build_filter
1251. condition = self.build_lookup(lookups, col, value)

File "C:\Users\mvanthiel\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\sql\query.py" in build_lookup
1116. lookup = lookup_class(lhs, rhs)

File "C:\Users\mvanthiel\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\lookups.py" in __init__
20. self.rhs = self.get_prep_lookup()

File "C:\Users\mvanthiel\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\lookups.py" in get_prep_lookup
70. return self.lhs.output_field.get_prep_value(self.rhs)

File "C:\Users\mvanthiel\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\fields\__init__.py" in get_prep_value
966. return int(value)

Exception Type: ValueError at /catalog/exten_int/telba.de_001
Exception Value: invalid literal for int() with base 10: 'telba.de_001'


我不相信您需要模板文件来帮助我,但是在这里您可以:

这是起作用的详细视图的模板:

{% extends "base_generic.html" %}

{% block content %}
<h1>Routing: {{ exten_ext.EXTEN_EXT }}</h1>

<p><strong>Kontext:</strong> {{ exten_ext.CONTEXT }}</p>
<p><strong>Auf Nebenstelle:</strong> {{ exten_ext.EXTEN_INT }}</p>
<p><strong>TrunkID:</strong> {{ exten_ext.TRUNKID }}</p>

{% endblock %}


这是不起作用的视图的模板:

{% extends "base_generic.html" %}

{% block content %}
<h1>Funktion: {{ exten_int.EXTEN_INT }}</h1>

<p><strong>Kontext:</strong> {{ exten_int.CONTEXT }}</p>
<p><strong>Funktionstyp:</strong> {{ exten_int.EXTEN_TYPE }}</p>
<p><strong>Funktionsattribute:</strong> {{ exten_int.EXTEN_ATTRIBUTES }}</p>

{% endblock %}


你能帮我么?

最佳答案

Ich denke ich hab es jetzt。可以在Modell中进行扩展,也可以在功能正常的情况下使用功能和功能,并在实例中使用exten_int实例。

最新信息exten_int模型:

class exten_int(models.Model):
"""Model representing a Function z.b.context telba.de, nst 525 => exten_type, exten_attributes (like Voicemail, Fax2Mail ect.)"""
id = models.AutoField(primary_key=True) # Default PK from Django
CONTEXT = models.ForeignKey('context', verbose_name='Kontext', max_length=200, on_delete=models.SET_NULL, null=True, help_text='Kontext')
EXTEN_INT = models.CharField('exten_int', max_length=20, unique=True, help_text='exten_int')
EXTEN_TYPE = models.IntegerField('Funktion', default=10, help_text='Functions Typ')
EXTEN_ATTRIBUTES = models.CharField('Attribute', max_length=200, help_text='Rufgruppe', default="call-00")

def __str__(self):
"""String for representing the Model object Function."""
return str(str(self.CONTEXT)+"_"+str(self.EXTEN_INT))

def get_absolute_url(self):
"""Model representing a Function."""
return reverse('exten_int-detail', args=[str(self.CONTEXT)+"_"+str(self.EXTEN_INT)])


Im模板der exten_int实例列表exten_int实例实例:

<a href="{{ exten_int.get_absolute_url }}"> {{ exten_int.CONTEXT }}_{{ exten_int.EXTEN_INT }} </a> ({{exten_int.EXTEN_TYPE}}, {{exten_int.EXTEN_ATTRIBUTES}})


在URLS.py中定义绝对的URL链接绝对值变量context_extenint:

path('exten_int/<str:context_extenint>', views.exten_intDetailView.as_view(), name='exten_int-detail'),


Under zum schluss in VIEWS.py habe ich dann die getüberschrieben。在上下文中,在上下文中定义变量context_extenint并在过滤器中添加变量。 Das First()专家提供的Python版本可以在环境中发挥作用,而在其他方面也很独特。

class exten_intDetailView(generic.DetailView):
model = exten_int
paginate_by = 10

class Meta:
ordering = ['CONTEXT', 'EXTEN_INT']

def get(self, request, context_extenint=None, **kwargs):
"""
`context_extenint` is from urls.py
"""
if context_extenint is not None:
context, extenint = context_extenint.split('_')
self.object = exten_int.objects.filter(Q(CONTEXT=context) and Q(EXTEN_INT=extenint)).first()
item = self.get_context_data(object=self.object)
return self.render_to_response(item)
else:
# default implementation
return super().get(request, **kwargs)


因此,Funktioniert死于View erwartet。

关于python - Python Django ValueError的int()无效文字,基数为10:“telba.de_001”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58282238/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com