DashboardData我的系统上有一个每个用户填写的表格(模型)。在此表单中,我们要求提供用户名、密码以及要更新到另一个系统的范围。此范围内的选项有每周一次、每月一次和每年一次。
根据用户选择的时间间隔,我将按照这些时间间隔运行一个函数。在此函数中,我将从用户填写的表单中获取用户名和密码作为参数。例如,在用户名,密码表单中,选择每周一次,然后我必须每周运行一次 myFunction(用户名,密码)。
我尝试用apscheduler这个。但在 apps.py 中我无法到达 request.user,因此我无法获取数据。我必须使用 request.user 来运行我的函数。
表格.py
class SetupForm(forms.ModelForm):
# Time
PERIOD = (
('168', 'Once a week'),
('720', 'Once a month'),
('8766 ', 'Once a year'),
)
n_username = forms.CharField()
n_password = forms.CharField(widget=forms.PasswordInput)
period = forms.CharField(max_length=200, widget=forms.Select(choices=PERIOD)))
class Meta:
model = DashboardData
fields = ('n_username', 'n_password','period')
Run Code Online (Sandbox Code Playgroud)
模型.py
class DashboardData(models.Model):
user = models.ForeignKey(UserProfile, on_delete=models.CASCADE, null=True) # request.user
n_username = models.CharField(max_length=250)
n_password = models.CharField(max_length=250)
period = models.CharField(max_length=250)
Run Code Online (Sandbox Code Playgroud)
函数.py
class myFunction():
def __init__(self, n_user, n_password):
self.time = datetime.now().strftime("%Y-%m-%d")
self.location = a_url
self.static_fields = {}
self.index_name = "pre-" + self.zaman
self.download_all(n_user, n_password)
self.send_it()
Run Code Online (Sandbox Code Playgroud)
应用程序.py
class DashboardConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'dashboard'
def ready(self):
start()
Run Code Online (Sandbox Code Playgroud)