わかりましたので、私は Django を初めて使用します (そして一般的にプログラミングを行い、複数のタイプのユーザーを必要とする Web サイトを構築しています。AUTH_PROFILE_MODULE にある基本クラスを作成し、基本クラスから継承するさまざまなユーザー タイプを持ちます。私の問題は、テンプレートの基本クラスから継承するクラスから保存されたデータにアクセスする方法です.基本クラス内にあるものにはuser.get_profile.fieldを使用できることは知っていますが、フィールドでは機能しません基底クラスの外側を持っているので、私のコードを見ていただけると分かりやすいかもしれません...
models.py
class BaseProfile(models.Model):
user = models.ForeignKey(User, unique=True)
#Other common fields
...
class StudentProfile(BaseProfile):
user_type = models.CharField(max_length=20, default="student")
#Other student specific fields
...
class InstructorProfile(BaseProfile):
user_type = models.CharField(max_length=20, default="instructor")
#Other instructor specific fields
...
設定.py
AUTH_PROFILE_MODULE = 'signup.BaseProfile'
インストラクター用と学生用に別々のフォームがあり、それぞれに HiddenInput フィールドとして user_type があるため、ユーザーが変更できないため、デフォルトで希望どおりになります。また、必要なさまざまなフォーム情報に対応するようにシグナルを設定しました。管理者で、使用されているフォームに応じて、シグナルが user_type をそれぞれ「インストラクター」または「学生」として正常に保存することを確認できますが、テンプレートでそれを取得する方法がわかりません。次のようないくつかのバリエーションを試しました。
template.html
{% if user.get_profile.user_type == "instructor" %}
{% if user.user_type == "instructor" %}
{% if user.InstructorProfile.user_type == "instructor" %}
繰り返しになりますが、私は Python だけでなく、プログラミング全般に非常に慣れていないため、十分な情報を提供したり、明確に説明したりしていない場合は、ご容赦ください。助けてくれてありがとう。他に情報を提供する必要がある場合はお知らせください。検索しても答えが見つかりません。