[英]How to add objects to a different model when using a form in Django?
[英]How to manually add objects to a Django model using a for loop?
對Python而言相對較新,而對Django而言則相對較新,因此需要一些幫助。
我正在嘗試創建一個與角色扮演游戲中類似的用戶升級系統(即,用戶通過獲得經驗值來獲得等級)
到目前為止,我在我的項目中有一個應用程序,該應用程序的models.py中包含此簡單模型。 我已經進行了遷移,並且此當前為空的表位於我的數據庫中:
class UserLevel(models.Model):
level_rank = models.IntegerField()
xp_threshold = models.IntegerField()
現在我要做的是將級別1到100(整數)添加到level_rank。 因此,將有100個實例。 最高等級為100。
另外,xp_threshold將每級增加50%。
因此,例如,級別1的xp_threshold為100,級別2的值為150,級別3的值為225,依此類推。
我不在乎數字如何取整。
我正在使用Django v2.0.13
到目前為止,我有這個:
class UserLevel(models.Model):
level_rank = models.IntegerField()
xp_threshold = models.IntegerField()
levels_range = range(1,101)
for level in levels_range:
UserLevel.objects.create(level_rank=level)
但這給了我一個NameError,說UserLevel沒有定義。
我知道我可以手動將這些數據泵送到Django的管理員中,但是要花100個級別才能花費很長時間,而且我知道有一個更好的方法。
有任何想法嗎?
謝謝!
這是關於Python而不是Django。 簡而言之,您無法在Python中做到這一點
class MyAwesomeClass:
a = 1
print(a)
print(MyAwesomeClass.a)
這將在第4行上拋出NameError
而是使用shell創建數據,例如python manage.py shell
from yourapp.models import UserLevel
UserLevel.objects.bulk_create([UserLevel(level_rank=level) for level in range(1, 101)])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.