我可能是Django的中型用户,我掌握了很多RTFM。
我的工作流程大致如下:
模型:
import csv
from datetime import datetime
with open('yourfile.csv') as fin:
seen_columns = set()
invalid_columns = set()
for row in csv.reader(fin):
for colno, col in enumerate(row, 1):
# We've seen it contains a non-date - don't try and parse it again
if colno in invalid_columns:
continue
# Make a note we've seen column N
seen_columns.add(colno)
# Try and see if we can parse it to the desired date format
try:
datetime.strptime(col, '%m/%d/%y')
# Nope - we couldn't... not a date - so don't both checking again
except ValueError:
invalid_columns.add(colno)
# Columns containing dates are those we've seen that
# didn't fail to parse as a date...
valid_columns = seen_columns - invalid_columns
各种功能/方法中的代码:
class Account(models.Model):
...
credit_balance = models.IntegerField(...)
...
class Usage(models.Model):
...
account = models.ForeignKey(Account, ...)
credit_balance = models.IntegerField(...)
...
def save( self, *args, **kwargs ):
"""Custom usage save to update account stats."""
if self.account:
self.account.credit_balance = self.credit_balance
self.account.save()
我真正要努力解决的是是否需要做:
account = Account.objects.get(pk=pk)
[do something to account]
usage = Usage.objects.create(account = account,
tariff_short_name = account.tariff.short_name,
**customer_data['usage'])
此时,含义是什么?
当我将相关的 account 对象保存在用法中时,我对 account 所做的更改(例如在第2步中)似乎已保存。 em>对象自定义保存方法。
为什么? 使用对象如何“知道”实例化的 account 对象的当前状态是什么?
我期望随后必须保存 account 对象,可能使用save(update_fields = [])来防止将 usage 对象更新覆盖到帐户模型。
抱歉,这是如此深奥-我只是不了解Django的行为。我似乎可以在tfm中找到它,但由于不确定所要查找的内容,因此我的谷歌搜索无法正常工作。