@websamson

Как отобразить поля в Django?

Добрый день.

1. Как в админке Django отобразить наименование модели? В админке выводится вида "Brands object (1)". А хотелось бы выводить поле модели "name".
63929ab869f28936529073.png

2. Есть модель "Claim" (обращение) у которой поля "model_auto" (модель ModelsAuto) и "brand_auto" (модель BrandsAuto). Связь один-ко-многим между ModelsAuto и BrandsAuto. Как сделать, чтобы при создании нового обращения поле "brand_auto" выбиралось только из подчиненных к "model_auto", а не все подряд.

3. Как при создании нового обращения поля выводить на русском, нормально форматировать.
63929b26325e6314914763.png

models.py

rom django.db import models
from django.conf import settings
from django.urls import reverse


class ModelsAuto(models.Model):
    name = models.CharField(max_length=100)

def __str__(self):
    return self.name


class Brands(models.Model):
    name = models.CharField(max_length=100)
    model_auto = models.ForeignKey(
        ModelsAuto, on_delete=models.CASCADE
    )

def __str__(self):
    return self.name


class Claim(models.Model):
    chassis_number = models.CharField(max_length=100)
    vin_number = models.CharField(max_length=17)
    model_auto = models.ForeignKey(
        ModelsAuto, null=True, on_delete=models.SET_NULL
    )
    brand_auto = models.ForeignKey(
        Brands, null=True, on_delete=models.SET_NULL
    )
    mileage = models.IntegerField(null=True)
    condition_auto = models.CharField(max_length=255)
    description_failure = models.TextField()
    result_check = models.CharField(max_length=255)
    dtc_codes = models.CharField(max_length=255)
    text_claim = models.TextField()
    date_claim = models.DateTimeField(auto_now_add=True)
    author = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
    )

def __str__(self):
    return self.text_claim

def get_absolute_url(self):
    return reverse(
        'claim_detail', args=[str(self.id)]
    )



view.py

...
class ClaimCreateView(CreateView):
    model = models.Claim
    fields = [
        'author',
        'chassis_number',
        'vin_number',
        'model_auto',
        'brand_auto',
        'mileage',
        'condition_auto',
        'description_failure',
        'result_check',
        'dtc_codes',
        'text_claim',
    ]
    template_name = 'claim_new.html'



claim_new.html

{% extends 'base.html' %}

{% block content %}
    <h1>Новое сервисное задание</h1>
    <form action="" method="post">{% csrf_token %}
    {{ form.as_p }}
    <button class="btn btn-success ml-2" type="submit">Сохранить</button>
    </form>
{% endblock content %}

  • Вопрос задан
  • 55 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы