11

Sto lavorando a qualcosa di simile a Disqus e ho creato uno snippet javascript di terze parti che l'utente incorporerà nel sito web e hanno un widget di valutazione per ogni articolo. Gli utenti possono valutare l'articolo utilizzando il widget. Tutto funziona, il server sta facendo la richiesta, ma sto rendendo esplicitamente l'istanza dell'oggetto article.Come salvare automaticamente il titolo per ogni nuovo articolo a condizione che il mio script js di terze parti sia incorporato in un sito Web

Ho bisogno di automatizzare questo, come per un nuovo articolo sul sito web, controllare che la richiesta provenga dal sito web autenticato e creare un nuovo widget di valutazione nel Database in Django e Django-rest-framework.

Sto usando Python 2.7.

Domanda: Come si salva automaticamente il titolo del nuovo articolo, se è nuovo e autenticato nel database?

So che ho bisogno di utilizzare un modello per implementarlo, ma non sono sicuro di come eseguire l'implementazione effettiva.

EDIT:

Diciamo che questa è la query

https://example.com/embed/comments/?base=default&version=edb619270a92c3035c453faa7c9444d1&f=example&t_i=article_2431522&t_u=http%3A%2F%2Fwww.firstpost.com%2Fbollywood%2Flatest-trailer-of-spectre-is-out-james-bond-is-back-all-guns-and-cars-blazing-2431522.html%09&t_e=Latest%20trailer%20of%20%27Spectre%27%20is%20out%3A%20James%20Bond%20is%20back%20all%20guns%20and%20cars%20blazing&t_d=Latest%20trailer%20of%20%27Spectre%27%20is%20out%3A%20James%20Bond%20is%20back%20all%20guns%20and%20cars%20blazing&t_t=Latest%20trailer%20of%20%27Spectre%27%20is%20out%3A%20James%20Bond%20is%20back%20all%20guns%20and%20cars%20blazing&s_o=default

Nel mio modello ho bisogno di salvare il seguente, come f-forum (dove forum=models.CharField("short name", max_length=30, unique=True)

so che ho bisogno per analizzare l'url per ogni &, ma non so come. Ho controllato la documentazione di rest-framework, ma non ne ho avuto il succo.

`f ---->forum, 
    t_i----> identifier, 
    t_u----> url 
    t_s----> slug, 
    t_e----> title, 
    t_d----> documentTitle, 
    t_t----> title || documentTitle, 
    t_c ---->category, 
    s_o----> sortOrder, 
    l----> language` 

Qual è la migliore prassi per risparmiare? Spero che questo aiuti

+0

questa è una domanda abbastanza aperta. in qualsiasi modo puoi elaborarlo e renderlo più specifico? – miki725

+0

È necessario esaminare la protezione CSRF se la si incorpora in un sito di un dominio diverso. Per quanto riguarda la creazione di un'istanza del modello, esegui un POST AJAX (supponendo che tu stia utilizzando Django Rest Framework) sul tuo server dal widget javascript quando appropriato. Questo creerà una nuova istanza di qualunque modello tu debba creare. –

+0

@ miki725 Ho aggiunto specifiche – n00b

risposta

4

ho intenzione di rispondere solo alla domanda lei ha dichiarato alla fine: "Come si salva automaticamente il titolo del nuovo articolo"

Hai ragione, è necessario creare un modello di articolo che rispecchi gli articoli del sito di terze parti.

Sarà necessario disporre di un campo per il titolo/titolo (probabilmente CharField), assicurarsi di renderlo abbastanza grande e/o affrontare casi in cui il titolo è più grande.

Avrai anche bisogno di un ID univoco per ogni articolo. Idealmente, piuttosto che usare l'impostazione predefinita di Django, utilizzerai qualsiasi cosa venga utilizzata dal sito di terze parti come ID univoco come mapping One to One.

Quindi, quando arriva una richiesta, è possibile utilizzare il metodo get_or_create per garantire che l'articolo esista nel DB.

+0

Ho già capito tutto tranne l'ultima frase. Questa è esattamente la mia domanda. Potresti elaborare l'ultima frase? Non voglio il codice. Devo aggiornare serializers.py? Grazie in anticipo, Kiwi – n00b

+2

Fa parte dell'API querysets https://docs.djangoproject.com/en/1.8/ref/models/querysets/#get-or-create – OllyTheNinja

+0

Non viene chiamato di default dal viewet né dall'api. In questo caso, direi che è necessario sovrascrivere il metodo get_object della vista/viewet e qui eseguire il recupero o la creazione. – Roba