Как сделать так, чтобы несколько внешних ключей в таблице ссылались на разные столбцы таблицы, на которую ссылается django - PullRequest
0 голосов
/ 03 ноября 2019

Итак, я экспериментировал с django и его встроенными базами данных и, похоже, застрял в отображении кратных внешних ключей

Например, в таблице полета, если в строке есть значения, подобные этому fl_no = EK560, входящий= Дубай, дест = Токио, Park_bay = 7b, авиакомпания = дельта, dep_time = 19: 50: 00, arr_time = 05: 50: 00

И в моей таблице статуса рейса, так как есть 4 внешних ключа, которые являютсяfl_no, park_bay, dest, dep_time. Я хочу, чтобы эти 4 атрибута отображали их соответствующие значения из таблицы полета, но вместо этого прямо сейчас для всех 4 внешних ключей я получаю только значения fl_no в качестве параметров для каждого поля вместо их соответствующего значения

моделей. py ссылка:

from django.db import models

# Create your models here.
class flight(models.Model):
    fl_no =models.CharField(max_length=6,primary_key=True)
    inbound= models.CharField(max_length=15,blank=True)
    dest= models.CharField(max_length=15,blank=True)
    park_bay= models.CharField(max_length=3)
    airline= models.CharField(max_length=15)
    dep_time= models.TimeField()
    arr_time= models.TimeField()

    def __str__(self):
        return self.fl_no

ссылающиеся модели. py:

from django.db import models
from postlog.models import flight

# Create your models here.
class FlightStatus(models.Model):
    Yes = 1
    No = 2
    CLEANING_CHOICES = (
        (Yes, 'Yes'),
        (No,'No'),
    )
    fl_no= models.ForeignKey(flight,on_delete=models.CASCADE,related_name='fli_no')
    park_bay= models.ForeignKey(flight,on_delete=models.CASCADE,related_name='parki_bay')
    catering= models.CharField(max_length=9)
    fuel= models.IntegerField()
    pas_cnt= models.IntegerField()
    dest= models.ForeignKey(flight,on_delete=models.CASCADE,related_name='desti')
    dep_time=models.ForeignKey(flight,on_delete=models.CASCADE,related_name='dept_time')
    Cleaning = models.PositiveSmallIntegerField(choices=CLEANING_CHOICES)

мой HTML-код:

{% extends 'base_template1.html' %}
{% load static from staticfiles %}
{% load crispy_forms_tags %}

<!DOCTYPE html>

{% block title %} Status {% endblock %}

{% block content %} 
<button type="button" class="butra button1ra" data-toggle="modal" data-target="#Add_Modal">Add Flight Status</button>

<!-- Adding a Flight Status -->

<div class="modal fade" id="Add_Modal" tabindex="-1" role="dialog" aria-labelledby="Add_ModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="AddModalLabel">Flight Details</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <form method="post">
            {% csrf_token %}
            {{ form|crispy }}
        </form>
      </div>
    <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Add Details</button>
      </div>
    </div>
  </div>
</div>

{%endblock%}

отображаются все атрибуты моего внешнего ключате же значения

def __str__(self):
    return self.fl_no

Я знаю, что должен изменить функцию str , но я не уверен, как

Я использовал формы моделей для форм

...