/ / Ako django-allauth pridám sociálnu aplikáciu OpenId? - django, openid, django-allauth

V django-allauth, ako môžem pridať OpenId sociálnu aplikáciu? - django, openid, django-allauth

Už som sa začal učiť django a chcel som tozačleniť aplikáciu allauth. Snažil sa to celú deň zistiť a nenašiel odpoveď na iné otázky. Kedykoľvek sa pokúsim pridať jednu zo sociálnych prihlásení, nemôžem ani získať prihlasovaciu obrazovku a django sa sťažuje:

get_login_url() keywords must be strings

keď sa pokúsi vykresliť zoznam poskytovateľov. (Skopíroval som nad základňou, indexom a profilom z príkladu, ktorý prišiel s allautom)

Čítal som, že skôr než použijem jednu z prihlásení, jamusíte pridať sociálnu aplikáciu do administrátorského rozhrania. Takže v administrátorskom rozhraní chcem vyskúšať jednu z jednoduchejších, takže som si zvolil OpenId. Keďže nemám ID aplikácie Facebooku alebo niečo iné, som si s OpenId uvedomil, nepotreboval by som to.

Som zavesený na to, čo používať pre kľúča Tajné zaregistrovať sociálnu aplikáciu. Som nováčikom k týmto veciam, ale myslela som si, že to bolo viac pre OAuth, ale ak to nezahrniem, označuje pole ako červené a vyžaduje ich. Kde nájdem / vygenerujem Key / Secret?

Tiež, aby som použil OpenId, musel by som špecifikovať stránky ako Google alebo Yahoo, alebo je tam len "OpenId"?

Stále používam riadiaci server run.py, ak to má nejaký rozdiel, ale myslel som si, že by som ešte mohol dostať stránku, aby "vykreslila".

odpovede:

1 pre odpoveď č. 1

Akú verziu programu Python používate? Ak používate starú verziu verzie 2.6, môžete sa dostať do problému popísaného tu:

http://cuu508.wordpress.com/2011/01/27/keywords-must-be-strings/

Dajte nám prosím vedieť, či to ukazuje váš problém. Ak áno, skontrolujem, či to urobím allauth hrajte pekne s vašou verziou ...

Aktualizácia: Nebolo to čas na otestovanie tohto problému, dali by ste túto zmenu vyskúšať ?:

--- a/allauth/socialaccount/templatetags/socialaccount.py
+++ b/allauth/socialaccount/templatetags/socialaccount.py
@@ -13,7 +13,7 @@ class ProviderLoginURLNode(template.Node):
def render(self, context):
provider_id = self.provider_id_var.resolve(context)
provider = providers.registry.by_id(provider_id)
-        query = dict([(name, var.resolve(context)) for name, var
+        query = dict([(str(name), var.resolve(context)) for name, var
in self.params.iteritems()])
request = context["request"]
if not query.has_key("next"):