ValueError: Поле 'id' ожидало число, но получило 'undefined'. в python3
здесь, когда я открываю страницу редактирования элемента, я получаю эту проблему
Вот мой models.py
class Category(models.Model):
category_name = models.CharField(max_length=20)
client = models.ForeignKey("core.Client",on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
is_deleted = models.BooleanField(default=False,
help_text="Deleted Category will not display in the UI.")
class Meta:
ordering = ['-category_name']
def __str__(self):
return self.category_name
class SubCategory(models.Model):
category = models.ForeignKey(Category,on_delete=models.CASCADE)
sub_category_name = models.CharField(max_length=20)
created_at = models.DateTimeField(auto_now_add=True)
client = models.ForeignKey("core.Client",on_delete=models.CASCADE)
modified = models.DateTimeField(auto_now=True)
is_deleted = models.BooleanField(default=False,
help_text="Deleted SubCategory will not display in the UI.")
class Meta:
ordering = ['-sub_category_name']
def __str__(self):
return self.sub_category_name
вот мой скрипт, написанный в шаблоне
//category
$('#id_category').change(function() {
var q = $('#id_category').val()
if (q != ''){
$('#id_sub_category').show();
$.ajax({
url: '/admin/ajaxsubcategory/'+ q + '/',
dataType: 'json',
type: 'GET',
// This is query string i.e. country_id=123
//data: {role_type : $('#id_category').val()},
success: function(data) {
$('#id_sub_category').html('<option value="">Please Select</option>'); // clear the current elements in select box
for (row in data) {
//alert(row);
$('#id_sub_category').append($('<option></option>').attr('value', row).text(data[row]));
}
},
error: function(jqXHR, textStatus, errorThrown) {
alert(errorThrown);
}
});
}
else{
$.ajax({
url: '/admin/ajaxsubcategory/'+ 0 + '/',
dataType: 'json',
type: 'GET',
// This is query string i.e. country_id=123
//data: {role_type : parseInt('all')},
success: function(data) {
$('#id_sub_category').html('<option value="">Please Select</option>');// clear the current elements in select box
for (row in data) {
//alert(row);
$('#id_sub_category').append($('<option></option>').attr('value', row).text(data[row]));
}
},
error: function(jqXHR, textStatus, errorThrown) {
alert(errorThrown);
}
});
}
});
Вот мой urls.py
re_path(r'^admin/ajaxsubcategory/(?P<category_id>.*)/$',category_ajax_view),
Вот мой views.py
@login_required
def category_ajax_view(request, category_id):
print("CATEGORY ID",category_id) #output is CATEGORY ID undefined
if category_id == '':
role_name = SubCategory.objects.filter(category_id=category_id).\
values_list('id', 'sub_category_name').\
exclude(is_deleted=True).order_by('sub_category_name')
else:
role_name = SubCategory.objects.filter(category_id=category_id).\
values_list('id', 'sub_category_name').\
exclude(is_deleted=True).order_by('sub_category_name')
return_dict = {}
for item in role_name:
return_dict[item[0]] = item[1]
return HttpResponse(json.dumps(return_dict))
Вот трассировка моей ошибки
Traceback (most recent call last):
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/core/handlers/base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/core/handlers/base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/home/harika/krishna test/dev-1.8/mcam/server/mcam/core/views.py", line 5473, in category_ajax_view
role_name = SubCategory.objects.filter(category_id=category_id).\
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/query.py", line 904, in filter
return self._filter_or_exclude(False, *args, **kwargs)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/query.py", line 923, in _filter_or_exclude
clone.query.add_q(Q(*args, **kwargs))
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/sql/query.py", line 1337, in add_q
clause, _ = self._add_q(q_object, self.used_aliases)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/sql/query.py", line 1365, in _add_q
split_subq=split_subq, simple_col=simple_col,
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/sql/query.py", line 1298, in build_filter
condition = self.build_lookup(lookups, col, value)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/sql/query.py", line 1155, in build_lookup
lookup = lookup_class(lhs, rhs)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/lookups.py", line 22, in __init__
self.rhs = self.get_prep_lookup()
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/fields/related_lookups.py", line 115, in get_prep_lookup
self.rhs = target_field.get_prep_value(self.rhs)
File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/fields/__init__.py", line 1772, in get_prep_value
) from e
ValueError: Field 'id' expected a number but got 'undefined'.
Здесь я не могу понять, почему я получаю значение категории как 'undefined'
Я обновил свой проект Django 1.8 до Django 3.0 и python2.7 до python 3.7
Я получаю эту ошибку, как только открываю страницу редактирования