社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Pedro

Pedro 最近创建的主题
Pedro 最近回复了
6 年前
回复了 Pedro 创建的主题 » Django模型两个DateTimeFields之间的运行时间
duration = timesheet.end_time - timesheet.start_time

当您减去两个datetime实例时,您不会得到另一个datetime实例,但是 timedelta instace,这只是两个日期之间的天、秒和微秒差。不能在DateTimeField中存储TimeDelta,但可以使用IntegerField,例如:

days_in_seconds = duration.days * 86400   # days difference by seconds in a day
duration_in_seconds = duration.seconds + days_in_seconds  # duration in seconds

当您想以timedelta形式访问持续时间时,只需执行以下操作:

import datetime

duration = datetime.timedelta(seconds=timesheet.duration)

您还可以将其存储为floatfield,如下所示 question .

当您在子类中定义小部件时,会覆盖父类中的小部件定义,要避免这种情况,可以编写自定义初始化方法:

class OrderPayForm(OrderForm):
    card_num = forms.CharField(max_length=16)
    exp_month = forms.CharField(max_length=2)
    exp_year = forms.CharField(max_length=2)
    cvc = forms.CharField(max_length=3)

    class Meta(OrderForm.Meta):
        fields = OrderForm.Meta.fields + ['card_num', 'exp_month', 'exp_year', 'cvc']


    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['card_num'].widget = forms.TextInput(attrs={
            'class': 'sizefull s-text7 p-l-22 p-r-22',
            'placeholder': 'Card Number'
        })
6 年前
回复了 Pedro 创建的主题 » 为什么选择instance.profile.save()django python

似乎第一个信号是在创建用户时创建配置文件。在一次调用中更新用户和配置文件的第二个调用,例如:

user.first_name = 'John'
user.last_name = 'Smith'
user.profile.age = 30
user.save()  # user and profile are updated in one call

所以你不必这么做:

user.profile.save()