ホームページ  >  記事  >  バックエンド開発  >  Django で、あるクラスが別のクラスの要素を継承させるにはどうすればよいですか?

Django で、あるクラスが別のクラスの要素を継承させるにはどうすればよいですか?

WBOY
WBOY転載
2024-02-09 22:09:03385ブラウズ

Django 中如何让一个类继承另一个类的元素?

質問の内容

属性 (会社名...) を含む顧客クラスと、顧客データを含む別のクラスがあります。テキストフィールドですが、テキストフィールドとして表示されません。クライアント クラスで models.foreignkey(outraclasse, on_delete=models.cascade) を使用して呼び出します。私は何か間違ったことをしましたか?何が足りないのでしょうか?

###編集: これらはアプリケーションのモデルとマネージャーです 管理者:

リーリー ###モデル###

from django.contrib import admin
from tenants.models import client

# register your models here.

class clientadmin(admin.modeladmin):
    list_display = [
        'company_name',
        'company_register_name',
        'company_id']

    search_fields = [
        'company_name',
        'company_register_name',
        'company_id']

    list_per_page = 10

admin.site.register(client,clientadmin)

正解

Django Admin のデフォルトの動作では、別のモデルへの参照がドロップダウン ボックスとして表示されます。別のモデル (外部キー) への参照は、「別のテーブルのどの行がこのレコードに関連するデータを保持しているか」を示す値にすぎないため、これは理にかなっています。


通常、他のテーブル (他のモデル) の値を直接編集する機会はありません。

関連モデルを編集可能なテキスト フィールドとして Django admin に表示したい場合は、Django admin の「インライン」クラスを確認する必要があります。 ClientBasicData をインラインで定義し、ClientAdmin からそのデータを参照する必要があります。

注: あなたがやろうとしていることは、モデル設計にもっと根本的な問題がある可能性があるようです。このデータを整理する別の方法を考えてみるとよいでしょう (つまり、「基本データ」を別のテーブルに置く理由は本当にあるのでしょうか?)。

以上がDjango で、あるクラスが別のクラスの要素を継承させるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。