use*_*631 2 python arguments function python-3.x
我有以下功能:
def create_act(user, verb, fk_name=None, fk_value=None):
fk = getattr(Action, fk_name)
action = Action(user=user, verb=verb, fk=fk_value)
action.save()
Run Code Online (Sandbox Code Playgroud)
行动是一个阶级.该类有多个属性,我不知道在哪个属性将得到一个值.
我得到属性名称动态.
我希望kwarg fk成为集体诉讼的实际属性.FK可以是账户或公司.
class Action(models.Model):
account = models.ForeignKey(Account, blank=True, null=True, related_name='activity', on_delete=models.CASCADE)
company = models.ForeignKey(Company, blank=True, null=True, related_name='activity', on_delete=models.CASCADE)
Run Code Online (Sandbox Code Playgroud)
我在论坛上找到了一些答案,但与我无关,或者在python中.我在其他网站上看到了一些使用eval的建议,但eval并不安全.
使用dict拆包**.请注意 - 如果fk_name是 - 的名称ForeignKey- fk将不是字符串,而是a ForwardManyToOneDescriptor.您可能仍希望设置名为的属性fk_name:
action = Action(user=user, verb=verb, **{fk_name: fk_value})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |