django - использование внешнего ключа в качестве ссылки - PullRequest
0 голосов
/ 21 октября 2018

Так что у меня возникла небольшая проблема с тем, как получить определенное значение из внешнего ключа в моем проекте.

my models.py

class Category(models.Model):
    category_name = models.CharField(max_length=50)

    def __str__(self):
        return self.category_name

class Frame(models.Model):
    banner = models.CharField(max_length=50)
    description = models.TextField(null=False, blank=False)
    date_created = models.DateTimeField(default=datetime.now, editable=False)
    user_id = models.ForeignKey(User, null=True, related_name='+', on_delete=models.CASCADE)
    category = models.ForeignKey('Category', on_delete=models.SET_NULL, null=True)

    def __str__(self):
        return str(self.banner)

мои URL.py

app_name = 'frames_app'

urlpatterns = [
    path('frame-<int:pk>', views.single_frame, name='f_detail'),
    path('category/<str:category>', views.category_filter, name="f_category")
]

my views.py

def category_filter(request, category):
    frames = Frame.objects.filter(category=category)
    return render(request, 'frames_app/category_frames.html', { 'frames': frames })

мой HTML-файл

{% for frame in frames %}
    <h2><a href="{% url 'frames_app:f_detail' pk=frame.pk %}">{{frame.banner}}</a></h2>
    <p>{{frame.ad_description}}</p>
    <p><a href="{% url 'frames_app:f_category' category=frame.category %}">{{frame.category}}</a></p>
    <p>Dated {{frame.date_created}}</p>
  {% endfor %}

Я получаю эту ошибку при попытке получить доступ к странице:

invalid literal for int() with base 10: 'somecategory'

«somecategory» - это объект категории.

Так как же я смогу получить доступ только к названию category_name для передачи в django вместо передачи всего объекта, как кажется, имеет место.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...