我正在嘗試創建一個動態文件夾來爲每個用戶存儲一些csv文件。 我有DemoUser和文檔。這是1對N的關係。 我想將來自用戶的所有文檔存儲在其文件夾中,由用戶標識命名。如何在django模型中獲取當前用戶?
但我無法弄清楚如何去做。我無法獲取擁有者名稱。
這裏是我的代碼:
models.py:
def get_upload_path(instance, filename):
now = timezone.now().strftime("%Y_%m_%d")
if(instance.owner.id is not None):
return 'graphs/documents/{0}/email/' + now +'_{1}'.format(instance.owner.id, filename)
class Document(models.Model):
docfile = models.FileField(upload_to=get_upload_path, validators=[import_document_validator])
owner = models.ForeignKey(DemoUser)
date_published = models.DateTimeField(_('date published'), default=timezone.now)
views.py:
if request.method == 'POST':
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
newdoc = Document(owner=DemoUser.objects.get(id=request.user.id))
newdoc.save()
newdoc.docfile = request.FILES['docfile']
newdoc.save()
的文件上傳,但地址:
圖/文件/ {0} /email/2015_10_07_MOCK_DATA_2_qyt9xGe.csv
它沒有得到instance.owner.id值。我試圖在添加docfile之前保存文檔,嘗試將所有者設置爲對象並獲取owner.id值,但沒有成功。你能幫我麼?
非常感謝!
請不要做像'DemoUser.objects.get(id = request.user.id)'這樣的事情。 'request.user'已經是那個確切的DemoUser實例,或者它根本不是DemoUser,在這種情況下,通過ID查詢是沒有意義的。 –