В python manage.py shell
from my_app_name.models import Exam
exam = Exam()
exam.subject = ""
exam.save()
Я выполнил эти строки. и я также создал экзамены по таким предметам, как "google", "engli sh", ..
Теперь Exam.objects.all()
возвращает
<QuerySet [<Exam: google>, <Exam: english>, <Exam: >]>
Проблема связана с наличием строки длина ноль в качестве предмета для одного объекта экзамена. Теперь я удалил этот экзамен, используя Exam.objects.get(subject="").delete()
. Проблема решена.
{% url 'map:exam-detail' exam.subject %}
или
{% url 'map:exam-detail' exam %}
или
{% url 'map:exam-detail' exam.pk %}
все это работает сейчас, потому что все возвращают объект. Но {% url 'map:exam-detail' exam.id %}
не будет работать . Потому что я subject как primary_key в модели экзамена , поэтому модель экзамена не имеет идентификатора атрибута (который добавляется по умолчанию, когда не используется primary_key упоминается).
размышляет о том, почему он принял пустую строку в качестве темы, хотя я определил ее как primary_key. Тогда я хочу прочесть о django .db.models.TextField и только что набранной справке (TextField) и получить
TextField(verbose_name=None, name=None, primary_key=False, max_length=None, unique=False, blank=False, null=False, db_index=False, rel=None, default=<class 'django.db.models.fields.NOT_PROVIDED'>, editable=True, serialize=True, unique_for_date=None, unique_for_month=None, unique_for_year=None, choices=None, help_text='', db_column=None, db_tablespace=None, auto_created=False, validators=(), error_messages=None)
Теперь попробовал валидаторы ... Проблема с последующими действиями ссылка
Спасибо всем Муника