2020年9月30日 星期三

玉山銀行e.Fingo 好友邀請碼:3VW1aK1N

玉山銀行e.Fingo 


好友邀請碼:3VW1aK1N


大家一起來加入吧!

2020年9月22日 星期二

Django formset用法

 這周在作表單,發現這實在是個大坑啊…花了很多時間在這個上面。


首先,推薦使用model formset_factory,因為方便不少。這個功能的特色是可以直接調用

formset = myformset(request.POST)

if formset.is_valid():

  formset.save()

  return redirect <the view u want to redirect>


那要怎麼用呢?

你可以選擇在forms.py裡面import 

from django.forms import modelformset_factory


class FakeForm(forms.ModelForm):

  class Meta:

    Model = Foo

    fields = ('list of the fields')


FakeFormset = modelformset_factory(Foo, FakeForm, extra=<how many u want>)


是不是很方便呢?


如果需要更高的可控性,只好使用一般的formset,缺點就是你得自己處理裡面的表單們。

formset = FooFormset(request.POST)

if formset.is_valid:

    for form in formset:

        field = form.cleaned_data.get('the input field name of the form')

<other fields>

instance = Foo.objects.create(field=field, ....)

instance.save()

return redirect ('<the  view you want to redirect the user>') 


這樣做就可以一次新增很多筆資料了。


2020年9月14日 星期一

Django 如何在url傳入參數

參考這篇:
stackoverflow.com/questions/25345392
通常我們連結都會寫成
{% url "<url name>"%}
但是當我們需要編輯一個項目時,往往需要傳入一個id
/<url >/<int:id>/
那這個要怎麼寫呢?
其實很簡單,就是
{% url '<url name>' id=item.id %}

文中還特別提到,當有複數個參數時,
{% url '<url name>' <param1>= sth.id <param2>=<sth else>.id%}

2020年8月31日 星期一

201911 慕尼黑機場T2漢莎非申根區貴賓室

梁哥拖了這麼久,終於要來寫去年的紀錄了。

這是疫情之前的紀錄,現在航空業爆炸慘,不曉得會不會有變。

貴賓室名稱: 慕尼黑機場第二航廈非申根區商務貴賓室
年月:2019.11
因為是慕尼黑,火腿和Prezel是必備的。大學裡面的食堂基本上也是常常吃這個。不過貴賓室自然好吃一點。(可能是心理作用??)

這就是這個貴賓室少有的熱食了。德國人本來就可以冷食吃整天。。。

近一點看,吃起來在歐洲來說還算不錯了。很多貴賓室根本就是餅乾吃到飽。

旁邊是沙拉吧,食材都算是新鮮。

麵包們,德國人很多種麵包,不過吃起來我覺得差不多。

咖啡在貴賓室自然是必備的。除了咖啡機之外,也可以去吧台點。不過德國不能拍到人,就不放圖了。

中間的那杯,就是去吧台點無乳糖版本的。

跟申根區內貴賓室,最大的差別就是有酒了。調酒都給他喝一輪。

當然也有滿坑滿谷的啤酒和軟性飲料。

飲料機來了。

最後來個覆盆莓奶酪和鬆餅結尾。完美,準備登機。

可惜現在暫時沒有機會去慕尼黑惹,希望疫情趕快結束啊~

這次的紀錄就到這囉…拜。

2020年8月20日 星期四

Django 出現OSError

 最近踩了Django的坑,覺得一定要記錄一下,不然太虧了。

出現的錯誤訊息是

OSError at <路徑>

[Error 5] inputoutput error 

這遇到的時候,真心讓人覺得頭疼。因為找不到相關的資訊。後來想起來,之前有網友提醒,一定要在上線前,把所有的print改掉。才發現原來是console被關到,產生出來的錯誤訊息。


意思是程式碼說要print,可是沒有console,我要怎麼print的意思


這時候,只有重新啟動程序一途了。而且要由nohup接管,就沒問題了。

PYTHONIOENCODING=utf-8 nohup python3 manage.py runserver 0:<port  you want to open> &


是不是很坑呢?

2020年8月13日 星期四

pip 的貼心小功能們

在把辛辛苦苦寫完的程式碼,部署到伺服器上時,最麻煩的,莫過於要裝許多的packages。不過,pip其實提供了很多很方便的語言喔!

首先在開發的電腦上面執行
pip freeze > requirements.txt
把產出的檔案,傳到伺服器上,再執行
pip install -r requirements.txt
就可以囉!
是不是很方便啊?

2020年8月3日 星期一

寫入excel的package:xlrd

由於咱們的使用者,期待能夠下載很多符合格式的文件,我們在遇到時間時,一定不能直接寫入,不然xlrd都會套用預設的通用格式,這樣就會出現一長串的數字。

要怎麼辦呢?其實python本身有個可以把日期變成文字的方法,叫做strftime

https://www.programiz.com/python-programming/datetime/strftime

例如:

from datetime import datetime

a = datetime.now()
a.strftime(%c)

即可產出我們習慣的文字格式時間喲。  敬請多加利用。