54175


タイトルに関してお伺いしたいです。宜しくお願い致します。

環境

  * Python 3.6.8 :: Anaconda, Inc. 
  * Django 2.1.7 
  * django-allauth 0.39.1

* * *

djangoの作成目的：日報管理を行うアプリを構築

⬛︎プロジェクトの構成  
Report  
|  
\--accounts_app  
|  
\--result_app

⬛︎モデルの構成  
accounts_app.models  
・Region  
・Department  
・UserProfile(OneToOne=>User)  
\- (department)=ForeignKey(Department)

result_app.models  
・ResultReport  
\- (owner) = ForeignKey(User)  
\- (department)= ForeignKey(Department)

この、`ResultReport`内の`department`フィールドの`default`を、`UserProfile`の`department`に設定したいのですが、adminサイトでデータの追加を見るとうまくいっていません。

⬛︎現在試していること

(report.models)

[code]

    from accounts.models import Region, Department, UserProfile
    class ResultReport(models.Model):
    owner = models.ForeignKey(User, default=User.username, ・・・・省略)
    department = models.ForeignKey(Department, default=str(UserProfile.user_region, ・・・・省略)
    
[/code]

◆ コードは動くのですが、、（最初、`makemigrations`すると、下記のエラーを吐き、  
`ValueError: Cannot
serialize：django.db.models.fields.related_descriptors.ForwardManyToOneDescriptor
object at 0x105de3e10`、取り合えず`str()`で囲んだら`migrate`できたのですが、、）  
反映されていません。

ひとまず動くので手動でもいいとは思うのですが、、どこをどうすれば良いかわからず質問させていただきます。  
※ appを分けているのはall-authを使ってみたくてtutorialをすすめて、accountsappを作成しただけなので特に理由はありません。  
※ `User.username`も拾わないので、、何か勘違いがあるのだと思っています。ご教示いただければ幸いです。

何卒宜しくお願い致します。


CC BY-SA 4.0
2019-04-10T21:34:38.973
54075
2019-04-16T01:46:22.417
2019-04-12T04:57:38.813
-1
29307
question
python django database
モデルのリレーションに関して[UserモデルとOneToOneで紐づけたモデルからデータを取得したい]


`models.py` と `admin.py` の実際のコードを見ないと確かなことはわかりませんが、 `default`
はそのような使い方はできないのではないでしょうか。

そのようなことをしたい場合は `ResultReport` の `save()` メソッドを上書きしてコードで設定するようにする必要があるものと思います。


CC BY-SA 4.0
2019-04-15T07:19:42.427
54175
2019-04-16T01:46:22.417
2019-04-16T01:46:22.417
28632
28632
54075
answer