-1

我现在正在学习 Django,我想用我的“数据库”和每行信息的 id/pk 获取一个表。现在我有这个:

模型:

class Car(HistoryBase):
plate = models.CharField(max_length=6, default='', verbose_name="Placa")
year = models.CharField(max_length=4, null=True, blank=True, default='', verbose_name="Año del auto")
model = models.CharField(max_length=20, null=True, blank=True, default='', verbose_name="Modelo del auto")
brand = models.CharField(max_length=20, null=True, blank=True, default='', verbose_name="Marca del auto")
color = models.CharField(max_length=20, null=True, blank=True, default='', verbose_name="Color del auto")

形式:

from ..core.forms import BootstrapModelForm
from .models import Car


class CarModelForm(BootstrapModelForm):
    class Meta:
      model = Car
      fields = '__all__'

看法:

from django.views.generic.edit import CreateView
from .models import Car
from .forms import CarModelForm

class CarDetailView(CreateView):
template_name = "cars_detail.html"
http_method_names = [u'get', u'post', ]
form_class = CarModelForm
model = Car
success_url = '/autos/{}'

def _get_car(self, *args, **kwargs):
    try:
        pk = int(self.kwargs.get('pk'))
        return Car.objects.get(pk=pk)
    except Exception:
        return None

模板:

<div class="col-sm-12">
  <div class="card">
    <div class="card-body">
      <div class="card-title"><h2>Listado de Autos</h2></div>
      <hr>
      <table id="tabla" class="table table-striped table-bordered" cellspacing="0" width="100%">
        <thead>
          <tr>
            <th>Numero</th>
            <th>Placa</th>
            <th>Marca</th>
            <th>Modelo</th>
            <th>Color</th>
          </tr>
        </thead>
        <tbody>
          {% for object in object_list %}
          <tr>
            **<td>{{ object.object_instance.pk }}</td>**
            <td>{{ object.plate }}</a></td>
            <td>{{ object.brand }}</td>
            <td>{{ object.model }}</td>
            <td>{{ object.color }}</td>
          </tr>
          {% endfor %}
        </tbody>
      </table>
    </div>
  </div>      
</div>

当我去 chrome 查看表格时,“numero”或 ID 列是空白的,请帮助:)

4

1 回答 1

1

pk只是实例的一个属性Model,所以你可以这样写:

<td>{{ object.pk }}</td>

该对象毕竟是一个模型实例。因此,该.pk属性是由“ Django 逻辑”添加的。

话虽如此,您可能应该修复您的 Django CreateView(这也很奇怪,因为它看起来更像一个ListView. 这_get_car(..)是 - 乍一看 - 从未调用过。自从你写了逻辑就发生了model=...

于 2018-08-15T19:38:57.943 回答