Как исправить ошибку «неверный литерал для int () с базой 10:« Независимость »Django? - PullRequest
1 голос
/ 19 сентября 2019

Я новичок в Django и создаю приложение для викторины.Я хочу иметь возможность импортировать некоторые вопросы из CSV-файла в Django, используя метод import_export.admin на сайте администратора. Когда я пытаюсь импортировать, содержимое моего CSV-файла, который содержит список вопросов, не добавляется к моим существующимвместо этого в списке вопросов выдается ошибка «Недопустимый литерал для int () с основанием 10:« Независимость ».»

Я попытался изменить формат файла CSV, который я загружаю из значений, разделенных запятымив CSV UTF-8 (через запятую).Я также попытался использовать целые числа в столбце «Категория», но он выдает ошибку «Трассировка (последний вызов был последним). Запрос на соответствие категории не существует».Любая помощь?

мой файл admin.py:

class QuizAdmin(admin.ModelAdmin):
     form = QuizAdminForm
     list_display = ('title', 'category', )
     list_filter = ('category',)
     search_fields = ('description', 'category', )


class CategoryAdmin(admin.ModelAdmin):
     search_fields = ('category', )

class MCQuestionAdmin(ImportExportModelAdmin):
      list_display = ('content', 'category', )
      list_filter = ('category',)
      fields = ('content', 'category',
      'figure', 'quiz', 'explanation', 'answer_order')
       search_fields = ('content', 'explanation')
      filter_horizontal = ('quiz',)
      inlines = [AnswerInline]

мой файл models.py:

class CategoryManager(models.Manager):

  def new_category(self, category):
    new_category = self.create(category=re.sub('\s+', '-', category).lower())
    new_category.save()
    return new_category


class Category(models.Model):
  category = models.CharField(verbose_name=_("Category"),
                              max_length=250, blank=True,
                              unique=True, null=True)

objects = CategoryManager()

class Meta:
    verbose_name = _("Category")
    verbose_name_plural = _("Categories")

def __str__(self):
    return self.category

class Question(models.Model):
"""
Base class for all question types.
Shared properties placed here.
"""

  quiz = models.ManyToManyField(Quiz,
                              verbose_name=_("Quiz"),
                              blank=True)

  category = models.ForeignKey(Category,
                             verbose_name=_("Category"),
                             blank=True,
                             null=True, on_delete=models.CASCADE)

  figure = models.ImageField(upload_to='uploads/%Y/%m/%d',
                           blank=True,
                           null=True,
                           verbose_name=_("Figure"))

  content = models.CharField(max_length=1000,
                           blank=False,
                           help_text=_("Enter the question text that "
                                       "you want displayed"),
                           verbose_name=_('Question'))

  explanation = models.TextField(max_length=2000,
                               blank=True,
                               help_text=_("Explanation to be shown "
                                           "after the question has "
                                           "been answered."),
                               verbose_name=_('Explanation'))

  objects = InheritanceManager()

class Meta:
    verbose_name = _("Question")
    verbose_name_plural = _("Questions")
    ordering = ['category']

 def __str__(self):
    return self.content

def create_new_question(data):  
questions = Question.objects.create_new_question(quiz=data['quiz'],
                                category=data['category'],
                                content=data['content'],
                                explanation=data['explanation'])
questions.save()   

Когда я загружаю файл, я получаю сообщение об ошибке:

hjjhk Недопустимый литерал для int () с основанием 10: «Независимость»

hbjk

1 Ответ

2 голосов
/ 19 сентября 2019

При создании вопроса для категории следует использовать идентификатор существующей категории, а не строковое значение или случайное целое число.

Вы уже создали некоторые категории?

...